I make custom systems for a living, I also support a CRM/ERP solution for SciFi conventions which often has custom enhancements for customers.
The real answer is to meet in the middle - sometimes the you have to be willing to tell the customer no - its just how it goes - and sometimes you need to go back and bang on the developers to go get it to work the way the customer thinks it ought to, because the customer is correct, and the devs do not understand the use case.
The key is, dont tell the customer no too often, and dont bang on the devs too often - you gotta strike the balance, and only experience can tell you where that magic line is.