It is the ncaa's fault because they hold ALL the cards and could have the nba eating out of their hands. All the ncaa has to do is allow kids to retain eligibility even if they enter the draft; even if they sign with an agent. The only way a kid loses eligibility is once he sets foot on the floor in an actual game. If a kid goes into the draft and is not taken at his desired spot and/or if the kid is not offered a salary he is satisfied with, the ncaa could allow him to continue playing college ball.
The nba has absolutely NO, zero power in this situation. Just imagine some team spending, say a 28th pick in the first round on a kid, who decides he is not satisfied. It wouldn't take too many times for this to happen that the nba would either decide:
1. Kids can go into the league straight out of hs (still the ncaa could allow eligibility) or, 2. The nba would pursue working with the ncaa to come up with an agreeable solution.