Even for things that smart contracts are capable of doing, the cost of doing them on a decentralised blockchain is often prohibitively expensive. For instace the Oraclize service, that does get external data into the contract, costs around $0.02, per API call. Which isn't much on its own, but they add up when compared to the number of API calls an average 'centralized' application makes.
I've often found that for quite a few applications, the cost of executing the contract on a blockchain outweigh the benefits of decentralisation.