So, let's say you manage to update your client's processes to the ones that best fit the SW you are selling. Eventually, the time for upgrading will come. Magically the specification for the new system will be: "it has to work exactly like the last one", and the last one will naturally happen to be yours.
Who wins? The customer? Maybe (how clumsy it may be, he now has a stable, supported process, after all). The vendor? A thousand times this: he has successfully locked-in yet another client, foraging on its inertia.
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.
Who wins? The customer? Maybe (how clumsy it may be, he now has a stable, supported process, after all). The vendor? A thousand times this: he has successfully locked-in yet another client, foraging on its inertia.