On a related note - all the blockchain contracts are limited by their inability to access real world data (e.g. stock prices, websites). For that you need distributed oracles:
https://github.com/orisi/wiki/wiki/Orisi-White-Paper
[0] https://bitcointalk.org/index.php?topic=195.msg1611#msg1611
[1] https://en.bitcoin.it/wiki/Contracts#Example_4:_Using_extern...
That's why not only Bitcoin, but also Ethereum and all the other blockchain-based currencies need oracles for passing external inputs in.
By the way, here's our repo, if anyone's interested in the whole concept: https://github.com/orisi/orisi -- there are tutorials there explaining how to set up an example oracle, and an example client sending stuff to oracles to sign.
There's also one of the core devs explaining this stuff: gavintech.blogspot.com/2014/06/bit-thereum.html
https://blog.ethereum.org/2014/03/28/schellingcoin-a-minimal...