Well it looks like we all agree - there are multiple culprits. Society is at fault ... yada, yada.
Another finger can be pointed at the inherent role of IT and their "relationship" with the business - I see it all the time. And its not that the public sector is necessarily any worse than those in the commercial world.
Business Management want a predictable service from their IT function. They have been taught that all of this stuff is far to hard to worry their pretty little heads about. IT need to write down everything that moves into a 400 page document (your classical functional requirements spec). IT then give Mgt about 2 days to read and inwardly digest coz otherwise their precious pet project is going to slip ...
Ask yourself this question - "Have you ever seen a Functional Requirements Spec that has stood the test of time?" ... i.e. that which was delivered (or better still required) is as was written down all those months or years ago. In my public speaking I ask this simple question when trying to get people to realise the implications of iterative development cycles (associated with BPM) ... and I have never, ever had anyone profer an example of a project that did.
We have taught biz users to think they can "outsource" the problem to IT, when of course they need to be intimately engaged in evolving a solution and ensuring it is successful.
Add to that the desire for IT to reduce risk (and the biz has seen what a mess they have made in the past), and you get a desire to find someone else you can take to court.
Summing up - Outsourcing these sorts of projects is tantamount to "Abbrogating Responsibility for Change". It is just something that an organisation just cannot outsource. Sure, get some project support resources from outside, but dont ask a multi-billion dollar consulting firm to save you money. They wont.