I am sure if you ask that question to ten people you will get 10 different answers, or at the very least a wide variety of reasons. The product chosen to deliver the solution was a poor match, the product was implemented incorrectly, the PM sucked, the Vendor gave no support, insufficient training material/resources, poor interoperability, the list goes on and on.
One issue I have observed from time to time on my travels is quite different from the above listed examples. In fact, (and this is my personal observation and opinion) the real issue can be hidden under the reasons listed above.
So, what am I talking about? I am referring to human nature, self-preservation, fear of the known or unknown, preference for another solution/vendor, I think you get my point.
I have seen many projects where it is quite clear the product was not miss-sold, was a good fit, where the support and implementation was solid, the PM was on point and so on. Yet the project limped along for “reasons”, where all the problems, issues or objections that cropped up were simply individuals finding anything that would help justify or protect their position or opinion.