Last year Michigan was hit by the NCAA for violating rules. Earlier this year, the NCAA finally came down on USC for events that happened back when Reggie Bush was on campus. Just last week, the NCAA accused West Virginia of major violations. These major violations started when Rich Rodriguez coached there.
There are many complaints about how the NCAA handles rules violations, but the biggest is probably that in many cases the violators escape any real punishment. For example, Reggie Bush and Pete Carroll. Bush doesn't have to sit out any games, lose any eligibility, or have a "no draft" tag placed on him by the NCAA in cooperation with the NFL. Pete Carroll has changed employers and he will never feel the effects of the lost bowl appearances and lost scholarships. The West Virginia case presents the same problem. Whatever punishment the NCAA metes out to the Mountaineers for Rich Rod's transgressions will not be borne by Rodriguez.
How can this problem be corrected for both players and coaches? For coaches, I think there is a pretty easy solution. If the coach is no longer at the university, then he has to take a 15-20% pay cut. A second violation would bring a larger pay cut (30%). A third violation and the coach is banned from being a head coach in the NCAA. For a coach like Pete Carroll who is no longer coaching college football, the NCAA can sue him. (I don't know how coaches contracts are structured now, but the NCAA could make it mandatory that all coaches contracts include a provision that states the coach agrees to pay a fine if he retires or takes a NFL coaching job and is later found to have broken NCAA rules.)
For players, the solution is not as simple. In fact, I don't have a solution that I feel strongly about. The player's stats and records could be stricken from the books. What might be better is to have the player pay back the monetary value of the scholarship that he received.
The fact of the matter is that unless the NCAA changes something, coaches and players will continue to violate rules at the same rate or higher.