It's the contract.....
Well maybe, having worked on a few contracts, the things that go wrong are usually down to the relationships, and it's rarely, wholly the fault of the outsourcer.
1. The relationship between users and IT changes, it becomes all about moving money, before outsourcing the money isn't visibly real before, after it is, suddenly as a user you have to think about costs you didn't before.
2. Purchasing Departments are naturally adversarial and are incentivised to save money by arguing bills, thus making change processes more complex.
3. Outsourcers front load investment, and then try and reduce that exposure after the fact, often promising bid teams investment that then fails to materialise leaving the delivery team exposed and disincentive.
4. You never get the best quality from the lowest bid.
5. Outsourcing contracts are hugely complex, after all, a minor government department may have 200 odd systems.
6. Client rarely know everything they have in their estate, and then try to make the outsourcer take the liability for stuff they didn't know about.
7. Why would anyone think putting another 2 layers of management between the user and the systems be efficient and cost effective.
8. Contracts take so long to negotiate that they are out of date before they start.
and so on. Having said that outsourcers don't help themselves.