Yes, there are a couple of things that you need to do to make sure that transactional emails are sending properly.
First, Magento sends transactional emails (emails after an order is placed) using the Magento cron. If the cron is not enabled, the system will not send out emails. This was done to limit the load on the server during the checkout process. If you create an account, however, this will send an email right away.
Second, make sure that the email address you are having the email send FROM is one that is authorized to send from the server. A Hotmail or Gmail or Yahoo account won't cut it. It should be a valid email that is the same domain name as the Magento store front.
Next, make sure that the IP address of the server, using a reverse DNS lookup, will resolve back to the domain name of the site. So if your site's IP address is 184.108.40.206 and your domain name is www.awesomeshop.com, then a reverse lookup of your the IP address should point back to the domain name.
Look up the IP address of the server to make sure that the IP address has not been blacklisted.
Finally, make sure you have an SPF record in your DNS zone file that gives authorization for this server to send outbound email. Most systems, such as gmail, etc, will use this as a verification to make sure that your server is allowed to send email. This is important if your email is hosted elsewhere / not on the same server (i.e. a hosted Exchange account or Google mail account).
I hope this helps!