Indeed. This seems to be the main problem. One running joke around my family / friends is that a hardworking B/C student does best in Engineering majors, because they work hard and are used to getting poor grades anyway. They've already come across that problem in their life.
On the other hand, students who got straight A's throughout high school become surprised at the difficulty, get their first B in their lifetime, and feel bad about themselves... possibly even switching majors.