The IBM example of pay is typical for many companies. They put people into pay categories with fixed pay limits, review workers once or twice a year, and set enormously high stadards of expectation. Managers don't look good to their bosses if too many employees are at the highest performance level. Also, they don't want to deal with the potential complaints of putting bad workers into the lowest level. This means that people are thrilled to get a 2-3% raise, but this is unlikely as your pay gets higher. The company starts talking about the actual dollars you are getting. Also, if some are getting 3%, then that has to come out of someone else's pay. Then, if you get to the top of your pay category, they just set up more hoops for you to jump through to be promoted to the next level.
Ultimately, however, it's all driven by supply and demand for your job skills. Companies are taking advantage of what I call job inertia. People will put up with less money just because they don't want to move or prove themselves all over in a new job. At some point, however, you might realize (usually by seeing someone else leave the company) that you can make a lot more by going to another company. I'm sure that there is a pattern of job follow-the-leader to other companies. This keeps companies honest - a little bit.
Companies can pay you whatever they want. They make up the job categories and pay limits. They can give out over-inflation raises if they decide to. The company might be making profits that far exceed inflation.
In the first company I worked, where I used to go on their college recruiting trips, we thought we figured out the corporation's policy. We would go to good colleges (like RPI) and only interview students with 3.75 or higher grade point averages. They would be offered very competitive starting salaries, and since they were young, their salaries would increase by the highest percentages each year. After a few years, some might jump ship and leave, but many would get married and settle down in the area. Then, the company would start giving these people less and less for raises. They would claim that there were fixed dollars that were allocated for each department for raises. Some years, departments were told that 10% of the employees would get no raises. The department managers would know who to pick - the ones least likely to leave.
Ultimately, supply and demand keep companies honest, but in the public education world, it's all about having everything controlled by contract negotiation, even preventing parental influence and control via charter schools. They have lost the argument that people with comparable educational backgrounds and job risk make more money.