In my opinion, it doesn't really make sense in MLB to sign guys to huge deals. The way that the contracts are structured, it is almost too risky to sign anyone to a 5 or 6 year deal. Many players get huge deals and disappoint.
See: Ken Griffey Jr., Darren Driefort, Jason Giambi, Mike Hampton, Jeff Bagwell, etc.. etc... etc..
These guys all got huge deals that they are not living up to. If you sign a guy for 1-2 years, you pay a market price for that player over the span of a contact because the term of the contract is short. In the short term, stats are easier to predict, so teams can more accurately assign a monetary value to a player. On the other hand, if you sign a guy to a multi-year deal, it is very difficult to forecast what they will be doing in 5-6 years. Often teams get stuck with a player that they are paying waaaaaayyyyy over market price.
On the other hand, the best case scenerio is that you pay a player a long term deal and he actually outperforms the contract. Although this is rare, it can happen. Many times what happens in these scenarios is that the player 'reworks' his deal so the team must pay more of a market rate for him on the remainder of the existing contract and often times gives the player an extension.
I say eliminate risk and give 1 and 2 year deals