You're just not correct. I've worked for good companies that give good raises based on the merit of the individual and protected employees when times were tough. Are they perfect and incredibly generous all the time for everyone? Of course not; but it doesn't have to be for the company to be a good company. I'm not putting up with anything; I'm getting good annual raises, praise for my work from multiple levels of management, and a clear advancement path. I live where I want right now and with some more time in where I currently am, I could potentially move just about anywhere.
There are good companies. Step one is finding them. Step two is getting a job with them. Step three is working hard (not killing yourself or blowing through 60 hours a week, just doing the job) and showing quality work. Step four is sticking around long enough to see the benefits and payoffs of being there. There's no shortage of bad companies too, and it seems like you've found some, but it does not mean that's all there is. Want to get an idea of whether it's any good there? Next time you're considering a new job, talk to some of the people you'd be working with. Specifically, look for people in their late 20s, early 30s and ask them how long they've been working there. People in their 20s change jobs these days like race car drivers change gear. Find a company with a bunch of 28 and 30 year olds who've been there 6, 7, 8 years and you can bet they're doing something right.