There should be no downtime when transferring a domain between registrars.
The nameservers you set at the old registrar should be the same when the transfer completes to your new registrar. (If in doubt, ask your new registrar to confirm that they don't clear nameservers or domain records when transferring a domain in. They have no reason to.)
If you're transferring hosting as well as the domain, that's when you need to be careful:
- Set up a new hosting account without transferring the domain (specify 'I have a domain' instead of 'I want to transfer my domain' to guard against hosts who might clear the nameservers).
- Copy files from the old server to the new server.
- Import database tables on the new server and update any configuration files on the that server.
- Create email accounts with identical usernames and passwords at the new web host, then backup and transfer old mail. (Do this as close to the nameserver switch as you can to reduce lost mail.)
- Transfer the domain and point it to the new nameservers once the transfer is complete.
The nameservers will update, usually within 48 hours (but often faster), and the new server will already be provisioned with the same data that was on the old one. Your clients shouldn't notice the change. In fact, it can often be hard to tell that you're serving files from the new account, so I sometimes add a small HTML comment in the header of the index page on the new server until the transfer's complete.