I recently had a chat with a friend of mine about the usage of cloud-based software services and that he doesn't need a private server anymore: all of his stuff are on these fancy cloud services: mails, contacts and calendar on GMail synced to his android device, code on GitHub, file sharing via Dropbox, photos on flicker and his private blog on blogger.com. Plus a few accounts on the major social networks. There is nothing wrong with using these services, but there are some reasons to not use them, especially for business users.
Account Lockdown: Every big player in the business has a common single sign-on solution spread across their services. You have a unique login for all your Google services ranging from Gmail, Google Play Store, GAE to Google Drive. Your Xbox console, Windows Mail, maybe Windows Azure services and your Apps in the Microsoft App Store are connected via your hotmail account. So what happens if you (intentionally or accidentally) loose access to your account? All your connected services will stop working. You have no longer access to all your valuable data. You even can't tell your business partners that you are unreachable because all your contact informations are burried in one of the cloud service providers. Sounds like a nightmare? It has happend multiple times (1, 2).
Cloud storage: Online file storage is another big point in the current online services landscape. Every big cloud provider has it: Google Drive, Microsoft SkyDrive, Dropbox, or Apple's iCloud. It's so comfortable to have all your data online and accessible from every computer with internet access. But how do you access your data when it takes only $795 to delete a Dropbox account?
Your code, your business: If you are working as a software developer and use cloud-based source code repositories like Github, Bitbucket or Microsofts Team Foundation Server in the cloud, think twice: what happens to you and your business if you loose access to these accounts because the provider goes out of business, is unavailable or you simply can't connect for some other reason? You can't make money. Period.
Availability: No one can guarantee a 100% uptime. It's just impossible. All a service provider can do is to throw a lot of money into the infrastructure for redundancy and increase the 9's after the dot. And even then it's possible that someday something will fail. This happend to Amazon's EC2 multiple times in the last year, affecting other popular websites. And even Google - certainly one of the biggest companies out there - has it outages in the past. And due to it's wide spread, even an partial outage of Google's service have an big impact on the whole internet: All sites with Google Analytics enabled have a large delay because of unreachable Google servers. Don't think just because your stuff is "in the cloud" you are protected against outages. Amazon's EBS even doesn't have a SLA. If it's gone, it's gone.
Conclusion: All of these cloud provider offer a great service. It was never easier to contribute to a software project, sync your contacts across multiple devices and computers or share data with your friends and family. But think twice before you put all your eggs into one basket, especially if you use these services for your business.