I think there's a few separate issues that need to be discussed. As Beernoser said, I think the biggest issue in the league is needing to make long-term deals make more sense in this league. I think there isn't enough of a penalty to just wait until the season is over and sign one-year deals based on players' stats that year. Let's say I extend Alex Avila, Pedro Alvarez, and Billy Butler to three-year deals before the season. Avila costs 49, Alvarez costs 29, and Butler costs 55. Avila and Alvarez end up playing to their contract or exceeding expectations, so I save $30 from what I would have spent for them had I extended them after the season. But, Butler gets hurt and has a crappy year, so I have to sign a new comparable first baseman for $55. I end up losing $25 even though I gambled on 3 contracts and succeeded in two of them. I proposed a restricted free agency system if you don't sign a player before the season in February.
Also, even if we can't go over the cap, which I agree with, Todd is suggesting "eating" part of Darvish's contract. If we allow eating contracts, then we are essentially allowing teams to go over cap. If I were uncompetitive, I would assuredly trade Bartolo Colon ($62) and eat $61 of his contract for a $1 player I thought has a chance of being worth $16 the following season. My team's budget for the season would effectively go down by $61, but it wouldn't matter to me because I'm not adding contracts in the season I'm uncompetitive.
I don't have a problem with allowing eating contracts, but I think if there are too many one-year deals you will see way too much trading. I think to solve this issue, we find a way to have it make more sense to sign long-term deals. A team would not want to trade for Chad Billingsly ($56) if he is signed for two more years, though right now with him having arm surgery I will assuredly move him if my team is not in contention.