I dunno about the difficulty, it would probably depend on your circumstances, but you could just give your customers a 1 month transfer time before their old account is terminated or something like that.
If the OS and control panels are the same it will be easier. I would suggest moving one customer at a time, and see how it goes.
The most important thing is to keep your customers informed as much as possible. A customer will forgive a lot of things if you keep them informed, but if you keep them in the dark about what is going on, they never forgive you!
All the suggestions were great. I add another, have full backup of all your clients data, or ask them to do that. It looks more professional if you do it yourself.
For moving from a host to another host it's not that difficult, if you haven't registered your domain with them. If you registered your domain somewhere else like Enom,Inc. Go Daddy or etc.. and you have full control over the domain, you can easily change/modify the DNS's to the new host DNS's.
But God bless you if you did register with them, some hosting providers, as I heard, they give you a real hard time if you want to shift to another host.
Anyways, it may take 12-24 hours for your DNS to be propagated and accessible globally. Which is normal and has got nothing to do with the hosting providers but network solutions.
Hope this gives you some ideas.
Executive Director | Micfo
delivering the divine hosting experience™ | AS53889 www.micfo.com