Many small companies run their own mail server, often running Exchange, and getting increasingly popular, some sort of *nix based MTA. The biggest mistake small companies make is investing too small, too cheap, which ends up being significantly more expensive. Not just in time/energy wasted, but in actual $$$ outlay.
1) Real Estate.
Renting a small office that can hold 10-30 people is not cheap. Often, things are cramped and the servers get tucked into a closet with inadequate ventilation, or a back corner under on a shelf somewhere. The space, that gets set aside for a server or 5, and random storage, could be much better served by having a revenue-generating human in it. That space costs the company more than $50 a month, and often costs more than $300 a month, if all utilities are pro-rated for it.
2) Suitability of environment.
How often do you see a small company with a server / network gear closet that runs at 85-90F in the summer? How much less efficiently does that machine run, in terms of power consumption. Higher temperature equals less efficiency from every component, and more bit errors. Heat sinks can only sink heat to the ambient temperature, and inside the case, it's over 100F!
A common practice is to put a 5-15K portable air conditioner in the closet. How often is warm air evacuation overlooked! Those units cost several thousand dollars, and require the reservoir to be emptied, or a drain line run, or they shut off when the collect enough evaporation.
Warm air evacuation needs a 5-8" hole drilled through, preferably an external wall, so you can get that hot air out of the office! I've seen companies stuff it into the dropped ceiling, only to have the heat have nowhere to go, and fall right back into the room, or not evacuate the hot air at all!
Random risk of fire, flood, and power outages. Many smaller companies are located in areas that are mixed residential, retail, light commercial, and are located in the first or second floor of buildings with way too much fuel for fire in them. How about sprinklers? A good sprinkler system will dump 1-50K gallons of dirty water on a building as soon as they heads heat up enough. A bic lighter will most certainly set one off.
Does every small office building have a good security system? You may think so, but places get robbed all the time. Dumpster diving is still a huge source of information for a good hacker, but that's another story for another article ;) Most colocation facilities have multiple points of security, humans, cameras, keycard and / or biometrics, and finally locked cages. Couple that with labels that are only internally referenced descriptors, and you're fairly tight. Much tighter than the home office.
4) Bandwidth and availability.
If you're in a co-location facility, chances are you're sharing some pretty robust network gear with a bunch of other people. If you're having a problem, a bunch of other people are having a problem, so the economy of scale in maintenance and initial layout of that gear is there. Using a random little netgear GB switch you picked up at Office Depot for your gear is stupid. If you really don't have the budget for real network hardware, go to Ebay and buy older stuff on the cheap. I can pick up a Cisco 3548 layer 2 switch for less than $100. You do not need Gb Ethernet for your mail server. You don't even usually need it for a file server. There's nothing wrong with using Gb cards to run at 100Mb, make sure you hard set all ports to "speed 100, duplex full" on both the switch and the servers, and you'll be pleasantly surprised.
Bandwidth at the office, unless your business is PUSHING huge files out to clients constantly, should access bandwidth only. Get away from the idea of serving anything from the office. At that point, you should go ahead and put your whole development environment, into a co-lo anyway. Get used to the idea that you don't have to touch the gear physically to have full access and remote supportability!
5) Cost, or a simplistic case study.
Random server at the office to do mail costs $2500.00, circuit to host random server (a single T1) is commodity-priced at ~$400 in most metro markets. Real estate, power, A/C costs at least another $100 a month anywhere, and that's conservative!
If you consider the server to have a 4 year life-span, that's a total per year of $625 for hardware, $4800 a year for the T1, $1200 for the space/lights/power/cooling. Quick math calls that $6625
per year, not counting licenses, administration, or troubles to resolve.
Take the same server, make it a 1U HP, like a last-model DL360 G5 (the G6 is out). Buy it used if you're really pinching the pennies, or new with 5 years of support for around $4K. Put it in co-location for $50 a month, including power and bandwidth. Get business DSL at the office for $200 a month or much less. $1000+$600+$2400=$4000 a year, a net savings of $2625.
The real estate can be a little cheaper at the office, but the bandwidth is nowhere near as good and cheap. Every situation is different, and scale affects things a lot. Individual situations require individual attention, and this model assumes a greenfield deployment, where most people are dealing with what they have first.
Anyone is free to contact me with questions.