The mess is probably on both sides. The issue is that management doesn't care about IT until everything breaks apart. This means IT is seen as cost and not worth the trouble to do well and keep in house. Then of course everything starts falling apart and it's easier to put the fault on the vendors. Of course IBM has its faults, but I'd guess they are more on the overselling side (we can do everything and cheaper and better!) than on the pure technical side.