Take a look at these article from 37 Signals: http://37signals.com/svn/posts/2106-you-can-always-do-less
That's true and it happened to me a lot. Clients always ask for crazy things and is part of our job to organize and minimize the set of 'required things'. Of course he will never understand at first but is part of our job to make them understand that is more important to build simpler versions of the features first, release them, receive feedback and identify the things that are necessary to make the feature a success.
Building Software as a Service lets you update the app easily and effortless and having a community that gives you feedback lets you test new features and make them perfect in future updates. If you do this you'll not work at nights trying to meet deadlines and users will be happy because they feel part of the software development, in fact, they are part.
Is important to have a good way to receive and organize the feedback and feature requests. I recommend Zendesk for that.