Re: It was only after the implementation began that they revealed that they couldn't.
Won't work. The customer will have to sign off the analysis report in order to complete the first stage, thus taking responsibility if the requirements are wrong. And they will be, because of what I mentioned above.
Just saying, but I've just had one of my customers explicitly tell me "remove all of the following recipes from the database", to which I asked, "are you sure? You're no longer using them?", to which they answered, "yup, they are obsolete", and, a couple of days later, call me with "why can't I find this recipe?"
It was the same person, even. It turns out that by "remove" they meant "replace with another that has the same ingredients, but a different name". How could I possibly understand that? I can fix it, mitigate it, and I do (in this case, recipes are never actually deleted, just hidden from the GUI), but I really don't see any way I could prevent that situation from arising in the first place.
The only way would have been to have someone in the middle who has enough knowledge of the customer's domain and procedures to understand what they actually mean, and enough knowledge of how computers work to be able to express requirements in a way that I can understand them.
In this particular case, having a position like that would be disproportionally expensive, compared to the project at hand. It's easier to just accept that this kind of things will happen; personally, I just factor in my initial quotation the assumption that a bit of this is going to happen, and then I don't charge the customer for it when it does. I have a reputation for high quotations in my field, but somehow people are always very happy with me in the end.
But for multi-million contracts? Bring in the requirements engineer. He'll charge a pretty penny, but you'll save money in the long run.