Seconding this, just because it's an interesting take on managing a company's needs...it'd probably still be a good idea to have a local box for login/email [if not using gmail] so you don't have to worry about lag over the WAN.
The cost benefit of doing something like this could be pretty big, especially if the small company is looking for a highly redundant, highly available, highly scalable solution, and they don't have anything in place already. If you built something similar in-house, you'd need a dedicated room with proper cooling (and possibly need it to be secured), racks, a UPS system, at least three servers (login/email [again, if not using gmail] on one box, storage on the 2nd box, web on another [especially if it's externally facing]), and a tape backup. This isn't factoring in any of the software needed to run it, any off-site backups (always a good idea), or any WAN requirements of on-site servers versus running almost everything in the cloud. Skimping on anything here means that you're going to have a ghetto setup, which is bad for everyone.
I'm wondering if the person asking the question has any idea what the client wants, though....why would you even consider thin clients if you've already put forth desktops/laptops as an option? It just seems like there's not a firm grip on what the client applications are going to be (or, if they do know what apps will be ran, that they don't have a firm grip on building out IT infrastructure.) Are the users ever going to be working from home? Are they only going to be using the web/word processors/console apps all day long, which would mean thin clients could be an okay solution? Do they need a lot of cheap computing power at their desk, but no need for mobility?
If you're doing email in-house, and using voip...as terrible as I feel about suggesting it, Microsoft Exchange and OCS tie in together rather nicely, and could handle your VoIP needs. Unfortunately, I don't have experience setting these products up versus setting up a free OSS alternative (asterisk/jabber), so I can't say which would be easier to build/support.
Regardless, the first thing to do is find out what the heck your client will be doing with their hardware, if they ever want to expand, and what your budget is. Then you can choose the right hardware for the job. Otherwise, you're just asking a question that's way too generic, and could be solved in a myriad of ways.