What we do, to transfer clients (most often forums, blogs, or shopping carts), we would transfer the whole account to our server, and then update the DNS records on the old server (if we have access, or get the client to submit a support ticket, etc), to point to the new IP address. This way, that server's DNS has the new IP address, and since other DNS server know that domainxyz.com resolves @ dnsserverabc.com, it doesn't have downtime. Then, when we make the DNS changeover at the registrar, we simply change the DNS server entries. But the client browsers already know the new IP, so downtime is practically null.
In short, using cPanel:
On the new server, use the transfer account option, which will then FTP to the old server, archive the account, copy it accross, deply it, and setup the DNS on our server.
At the same time, on the old server, edit the DNS records for the account in question, and just change the IP to the new server. You only need todo this at the very end, where you see WHM tells you the account transfer is complete.
We found that even on a busy site, there's no downtime. Then when you submit the DNS update at the registrar, you basically tell them to use a new DNS server to resolve that domain, but since the IP has been changed already on the other one, you still don't have any downtime.