EA companies do well in the market, but markets are far from efficient. Some points:

* No one likes responsibility. When an EA company says, "don't worry, we'll take responsibility," managers like that. For some reason, there is no blame assigned to people who choose bad vendors as long as the vendor made good promises. This is one reason I think open-source adoption is slow. Open-source doesn't promise to work. If an open-source solution fails, it's your fault. If a vendor lied to you, the solution seems to be throwing more money at the vendor. But no matter what, you aren't to blame: the vendor is.

* Most EA software can't be tested nicely before purchase. You get beautiful controlled demos with sales people who can mold the situation. Excuses for why something can't be done in the demo, but work perfectly in real-life or will be coming in a month are common and accepted. Again, they're promising that you don't have to deal with it.

* EA software is expensive. Ridiculously so. Most EA software that we use has annual maintenance fees that rival a salary and still require someone in-house to configure and deal with it. Once you've spent that much money, there is a real drive to build things into it that lock you into it - you want to get your money's worth, don't you? More, there's a huge social-psychological barrier to someone saying, "I'm an idiot that wasted 50 grand and we should really dump what I was paid to choose for something else." Even beyond not wanting to admit you're dumb, you don't want others to know that because if you're not good at choosing platforms, what on earth are you getting paid for? So, the only way to actually switch away from it is to find some excuse about how times have changed and it was good at the time, but not now. Even then, why couldn't you have foreseen that this company wouldn't suffice long-term?

* And finally, by the time enough time has passed to make one of those excuses, you have too much investment in the old system - whether that be training, data, lock-in, etc.

Think of it this way, you shell out $100,000 for a system with $75,000 in annual maintenance/support and sign a two-year contract. You get the system and it's quirky, but you've paid so much for it and are determined to use it. You find out over the next 3-4 months that it's just terrible: the sales people outright lied, you didn't investigate what really needed to be looked at, and it's just terrible for what you need. But you need something now so you pay the company $20,000 (in addition) to build a bit of custom thing. At this point, you definitely can't switch before the 2 years are up (or you've just wasted $270,000 which you will have to explain). Plus, by the 6 month period someone in your company will have found one random thing that they will never let you hear the end of if it ever works slightly differently. It's a terrible "feature" that no logical person would want and would be incredibly difficult to duplicate and so you now have even more resistance from outside IT.

And you can always defend the system as "the cost of doing business" and any shortcomings are the vendor's fault, not your shortcomings (whether or not you should have been better at choosing a system). Markets are powerful, psychology and ego can be more powerful ;-).