The problem is college basketball is full of players that are too good for college, but not really good enough to play in the NBA and there's no established intermediate level for players to hone their skills. The money is always a motivating factor and that's why so many players make the jump to the NBA before they're truly ready to contribute. In addition, college is not an easy transition for everyone. It's easy for an outsider looking in to say stay in school and get your education, but calculus, biology, and organic chemistry isn't for everyone. I think some of these players leave early because the challenges of academia are more than they can handle.
Deciding to go pro is a lot like being a contestant on a game show. Do you take the money that's in front of you, or do you take the chance to better your position? Nothing is guaranteed so why take the gamble? On the other hand one extra year could increase your earning potential ten fold. Hindsight is 20/20 and knowing what we know now Xavier Henry would have been better served playing an extra year at Kansas. More playing time and individual coaching would have done wonders for his game. Then again he no longer has to eat top ramen and borrow his girlfriend's car to go to the store. Tough decision either way.