The main problem I see relates to the disconnect of what the expectations are for the student and about the student. On the one hand students are not expecting what they are getting due to a lack of understanding (I mean in general) of what is required in their field of study. There lies the problem with what is expected of the student. My experience teaching chemistry to non-chemistry majors (mainly pre-med) tells me that they do not come to class prepared for a subject that not only requires deep level of analytical thinking but an understanding that problems in nature are broad based and in a context that is open and diverse. For example the need for mathematical solutions to chemical equations. They may have a intuitive sense of what is going on with the chemical compounds as they undergo a chemical transformation but are not able to quantify the process. Now, that is a huge problem when dealing with stoichiometry that is all about quantification!
The solution? I would not say that there is simple solution, but I believe that technology can be part of the solution. Virtual classes, and online tutoring may help students broaden their view of the matter. The possibility of doing online synchronous and asynchronous tutoring with immediate response to input from the student is an invaluable tool. As we can see in courses especially designed to be offered online like the Coursera, edX, and Khan Academy. I think that teaching professors in traditional colleges can use these tools to supplement the material regularly covered in class during lecture time.