There's a scene in Monty Python's Life of Brian where someone (Brian, maybe? I've never watched the actual movie) is running away from some Roman soldiers. He tries to buy a false beard to use as a disguise but when he hands over the full price (20 shekles) the vendor refuses to take it, insisting, that they must haggle before money and beard can change hands. The haggling takes time and causes Brian (?) much consternation because he wants to buy the beard, put it on and run away wearing his new disguise.
You can watch it on YouTube. I, begrudgingly, admit that it's kinda funny.
The same sought of thing happens in many Agile transformations: our customers and our managers keep wanting to haggle even though it's unnecessary and counter-productive for all of us.
It's understandable: for decades they've negotiated with us technology folk for a big scope and a short delivery time, wishfully thinking that negotiating a tight promise actually results in that promise being kept (!), but when we switch to Agile we focus most of our efforts on the technical changes, rather than the changes in mindset.
What can we do about this?
Well to start with, let's name things differently. I work in a big financial organisation and one of the many things I like about working there is that our CIO is insistent (in a nice way) that we don't call our internal customers "customers". He says they're "partners" which, when you think about it, they are. I'd not heard this distinction before but I think it's very important. Likewise, if you're working with external vendors or customers then make a distinction between the commercial negotiations (where you still use the "customer" word) and the delivery (where you do partner).
And, of course, when you're making a promise, make it a slam-dunk promise where you:
blatantly and transparently under-promise then, when we get lucky (and we usually do), over-deliver.