Waiver rules also prevent teams from playing fast and loose with roster sizes. If you had unlimited ability to move players from the major team to minor league clubs, you could effectively expand teh major league club way beyond the intended limit. For instance, a baseball team can carry only 25 players on the major league club. Without a waiver system, a team could theoretically assign every starting pitcher except today’s starter to the minor leagues, allowing them to have an extra 3-4 players on the roster at any one time; Josh Beckett starts on Monday, then you “send him to the minors” on Tuesday and bring up Tuesday’s starter Dontrelle Willis, then send him down on Wednesday and “Bring up” the Wednesday starter, etc. etc.
Thsi would also enable a team to exploit the minor leagues to avoid usage of the disabled list. In some sports an injured player must be placed on a “disabled list” for a minimum period of time to replace him with another player. In baseball it’s 15 days, in basketball I think it’s 10. If a player is really hurt the disabled list is fine, but if not, this forces a team to make a tough decision if a player is mildly injured; send your point guard with an ankle sprain down for 10 days when maybe he only needs 7? Or live a player short for 7 days? Without waiver claims you could just send injured players down willy-nilly for any number of days you wanted.
Waivers are also used in some sports to limit trades. In almost every major pro sport there is a point in the regular season when unlimited trading is disallowed; this prevents collusion, where one team without a hope of making the playoffs could just ship five guys to another team on the last day of the season. Instead, the rules are customarily such that beyond the trading deadline, a player has to clear waivers or else he cannot be traded. Usually these waivers are revocable, meaning a team can waive a player to see if they can trade him, but if he is claimed they are permitted to take him off waivers and keep him.
As Realitychuck points out, teams will sometimes claim players just to stop trades. Sometimes, though, they get stuck with a player they didn’t want but were claiming just to prevent a trade. In 2000, the Tampa Bay Devil Rays waived Jose Canseco past the trading deadline in an effort to trade him. The Yankees didn’t need him, but put in a claim on him because they feared the possibility he would be traded to Boston or Toronto, who could have used his skills and who the Yankees were fighting for a playoff spot. But instead of taking him off waivers, the Devil Rays said, in effect, “You want him? He’s all yours. Good luck with that.” As it turns out, they really just wanted to get rid of him; getting soemthing in return would have been nice but just releasing him was fine, too. Canseco became a Yankee almost accidentally, and languished on the Yankee bench for the rest of the season.