If WAR is negative you could add extra cost to the contract, because the team actually paid someone to make them worse.
I thought about calculating the cost per WAR for all of the other contracts in baseball and using the total contract plus that amount. Now that I am typing that out it makes more sense than when I first thought of it. That should encapsulate the additional cost required to get a useful player, on average.
What I don't like about that, though, is how it benefits the guy who got -.1 WAR vs. .1 WAR. While both of them equal, roughly, the same amount of wasted money, the .1 WAR guy is going to negatively impact the overal calculation more.
The Braves signed Kenshin Kawakami to a 3/$23M contract in 2009. He proceeded to give them -.2 WAR over his contract. At the same time, the Cubs signed Milton Bradley to a 3/$30M deal and gave them (sans Carlos Silva) .2 WAR.
Now the calculation would put Bradley at $150M per WAR (which would be correct, you'd have to sign 5 Milton Bradleys (which might actually be hilarious) to achieve 1 WAR. However, the "best" way to calculate Kawakami's cost/WAR would put him at $33M to achieve 1 WAR (which would be technically impossible no matter how many of him you sign). Now, Bradley was .4 WAR more productive than Kawakami but cost ~$120M more? This also applies to the handful of guys that achieved replacement level.
I could take the worst deal possible and add it to the contract cost. (The worst deal ever, so far, was Kei Igawa. 5/$20 and provided .1 WAR - $200M per WAR.)
I thought about it some and here is what I came up with. It could serve as a solution for any player who has less than 1 WAR. Set their contract as the cost for 1 WAR, then add the necessary WAR to get up to 1 WAR. Using the examples you already mentioned.
Bradley: achieved 0.2 WAR on 30 million contract; 1 WAR = 30 million. Cost equals 30 + 30(1-0.2)= 30 +30(0.8) = 54 million per war
Kawakami: achieved -0.2 WAR on 23 million contract; 1 WAR =23 million. Cost equals 23 + 23(1- (-0.2)) = 23 + 23(1.2) = 50.6 million per WAR
Linebrink; achieved 0.1 WAR on 19 Million contract; 1 WAR = 19 million, Cost equals 19 + 19(1-0.1) = 19 +19(.9) = 36.1 million per WAR
Igawa; achieved 0.1 WAR on 20 million contract; Cost = 38 million per WAR
Bradleys contract still ends up worst despite being a positive war because the other guys signed for a lower amount (this sentence is definitely a downer).
Not sure if this will work for what you are doing but it will avoid outlandish numbers like 150 million per win (though 50 million is bad as well). It also involves calculation price per WAR different for players with less than 1 WAR than ones with greater, but I think it would work out okay based off of some random numbers I did for players with greater than 1 WAR.