No matter how prepared one is, no matter how much one knows, no matter how may ways you can address an issue, the customer just never gets it sometimes.
Every migration project has the same formula, although we try hard not to have it happen, it still happens every time. But, at least if you plan ahead for it, you can control the damage and prove your worth to your client.
How many times have you heard the customer say "No one uses that function", "they don't need their old email converted or migrated", "our existing backup solution will work fine", or my new favorite, "don't worry about a Domino BES, everyone is getting iPhones and Android so we will use Lotus Notes Traveler" and one could go on forever with these great lines.
Yet every time all of these and more come back to the table as scope creep or "extra budget line items". But that's not how it has to be.
Always keep in mind that here are many people involved and no matter if the CEO or CIO is approving this and making decisions, your job is to prepare them for any and all potential risks. They may waive you off, but at least you did your job and they will remember the warnings...even when they call at the last minute on Friday before going live that they need a backup solution.
Documentation for your project, from you to your client is the word of God. So make sure in your contracts you stipulate all the options and provide multiple levels of pricing to accommodate it all. In this way you guarantee to cover your side of the story and should the customer rethink their plans, they also have a price in hand to work with(some will argue a new contract could be used, just depends on your wording, I am not lawyer so go ask one if you are worried).
It also helps to have the executive sponsor in the room at the same time as the technical manager or executive and a business line representative to cover at least 3 sides of what is truly a multifaceted issue.