The league actually has made moves to reduce the problems. You get players like Rodney Harrison bitching about it. They tried to change helmets to a safer design and players didn't like the impact it had on their performance and thus their ability to get paid.
The NFLPA is the one that should be taking the blame. They have not simply put no effort into it, but they have actively pushed back against changes to help.
I think they should just pay the players then charge them the normal rates that students pay. Sure, it will likely end up causing a number of lesser players to have to start paying, but who cares! Everything always works out how people say it will and the talking heads have decided that college players need to be paid!