When considering IT failures, it's tempting to focus on easy targets such as external software vendors, in-house IT departments, third-party consultants, and so on. However, to gain a more balanced understanding of failure, one must look upstream at the business logic and management case behind failed projects.
Miko Matsumura discusses this issue on his blog. While Miko's comments are focused on SOA, the lessons are generally applicable:
What I tend to see are Business Projects which are funded and executed without any respect for the implications to IT and I see additional unmaintainable complexity being shoved down into IT in order to meet short term business goals. Some of this complexity is shoved down into offshore teams. This is an attempt to reverse entropy locally within a subgroup. For example, the business team can push entropy to the development team and they can push it to the offshore team.
To paraphrase, business management develops a partially-formed plan, and pushes it to the IT department. IT management transfers execution to development, which passes the whole mess to an offshore group. When the project fails, the offshore group receives blame for "their" screw-up.
In fact, the real problem started with upstream business management, because the original plan was no good. The whole scenario is like a very expensive game of telephone, where failure is magnified as the buck is passed downstream.
Unfortunately, a pass-the-buck mentality does exist in many organizations. If you're a leader and this scenario rings true, perhaps an objective look at your personal management style is in order. While you're at it, ask why your organization's corporate culture tolerates this lack of accountability down through the chain.