the problem is that companies do not pay a fair wage.
they hire a person, and then if they work like a slave for them...the most they'd see is a 5% raise if that. And in this economy, chances are the company won't even give the people a raise for years. And early on, in one's career, the experience you gain is valued way more than a 5% raise.
I'll give you an example of my friend. He came into his company and ended up with a $12K raise in salary. Pretty much was the top performer there. So the first year he got a 5% raise(max available, and only after 4 months on the job). Second year the market crashed. And the company pretty much slashed the work force. 50% of people were let go. Out of 30 people in his department, only 3 were left. No raises that year. The next year, no raises, more jobs slashed, the rest of his team was let go...and my friend ended up being the only person in the department(company has multiple divisions, so he was just transferred to another department). The next year the company turned around...but once again no raises.
So look at my friend...1. top performer...out of 30 people in his department, the only one who wasn't laid off. 2. more and more responsibilities, pretty much attached to his blackberry. Works nights, weekends from home too. 3. the ONLY person in the entire company who knows anything about 60% of the company's internal software..and no raises. And due to inflation....you can even say his salary was slashed, because it wasn't adjusted with inflation for multiple years.
Now why would anyone stick around with a company like that? Why wouldn't he move to another company for a 20-30% raise? In fact he wants to...but he can't because he is the only person working in his family, has kids and he figures, it's better the devil you know, so he is waiting for the market to turn around...+ he likes his commute.
Now let's say he sticks around for another year, and the next year the company decides to give everyone raises. Do you think the company will be fair, and will give people raises for the 3 years they stuck around supporting the company through the tough times w/o getting paid their fair market value? Or do you think they'll just give people 5%(if that) and maybe a $500 bonus?
Bottom line: Employees will stick with you through thick and thin as long as you pay them their fair share...noone likes changing jobs...noone likes the first 3 months on a new job when you don't know if they want to keep you, noone likes job hunting, noone likes interviewing.
If you don't, you shouldn't be surprised if they feel justified to look for a company that pays them what they are worth.