I think it's the employee's responsibility to make sure they are getting paid what they are worth.  You can not count on a employer to do that, they will always try and keep labor costs as low as possible.  In a strong job market if an employer is underpaying their employees they will lose them.  Paying employees the least amount as possible might work fine in a low skill industry where anyone off the street can replace your workers.  In industries that require high levels of skill and where there is a limited labor pool to replace workers it becomes a risk to pay workers the least amount possible.  Hiring and re-training employees is much more expensive than just paying your good employees what they are worth.    But that's business decision and risk some companies are willing to take because they know that some employees are too lazy to go find a different job.

It really comes down to a mentality for companies, do you view your employees as an asset or as a liability (cost).