What you describe is a classic large Systems Implementor problem, and that can be very true. The A-team sold the project and the B-team deliver it. They screw up the requirements gathering and the implementation. I've seen it happen many times.
Sometimes the product is to blame because it doesn't work as promised. Most of the time the consulting organisation didn't know the product well enough and made a mess of it. Totally agree on your contract point. Agree contracts, terms and conditions up front. Pay attention and take time.
The problem with ERP is institutionalized – the licensors have set themselves up to absorb almost no risk of project failure. The big consultants are also masters of shifting risk back to the client. That leaves the client to deal with a middle tier of consultants that is a mixed bag of capabilities, capitalization, etc.