Surprisingly, after the long discussion on that well-known meta question, it doesn't seem like anyone's asked about the question that was used as an example: what are the tradeoffs of running your own Exchange servers vs. outsourcing?
For my company, we've seen outsourcing and insourcing come and go a couple times and have stuck to doing it all ourselves. We've used hosted solutions in limited roles (e.g. we've used email filtering for several years now, from when it was Bigfish), but that's it.
In no particular order, the reasons that come to mind for keeping Exchange (and most other functions) in-house are:
Accountability: my bosses know who's responsible for their data, their information system applications. If there's a problem, they have someone in the building (me) to call to find out what the problem is and when it'll be fixed. Worst case, they have someone they can fire if there's a big screw-up.
Security: I'm thinking mostly of data security: all our data is in our building (except for off-site tapes), it's backed up, it's available to the people who need it, access to anyone outside the company is limited.
History: it's not necessarily a great reason, but the in-house IT department has always done a good job, has never had any huge disasters, and the staff turnover has been low, so there's a lot of trust that's been built up that we can do whatever needs to be done - and do it well. Another historical influence is that we have lots of people (including me) who go back way before the Internet took off, before there were many options for outsourcing.
Flexibility: if our internal needs require an unusual configuration, we don't need to negotiate with a supplier to get it setup.
I have gone on both sides of this debate, and I have come to grips with the idea that there is no one-size-fits-all answer to the question. There is more discussion in this question, focused on custom built apps.
Were I starting from scratch, I would likely host email externally until I got to 200-300 mailboxes, then I would crunch numbers and analyze the issues. I would not replace an existing installation unless it were very dated.
Cost - I think this favors external hosting
An externally hosted solution will generally have a very predictable, steady, constant costs .. so much per user per month. For all but the largest installations, it will be lower than what a company can do itself. Also, costs for internally hosted solutions tend to fluctuate and be irregular and somewhat unpredictable.
Reliability - favors external hosting
Almost certainly, economies of scale allow hosting companies to build a much more reliable system than a non-huge normal company will be able to afford on it's own.
Accountability - agnostic I'm not so sure I buy the argument you make. Generally, it is easier to fire a vendor than an employee. And (frankly) you are no less responsible for the solution because it is being delivered through a vendor. You are still the "one throat to choke" internally, and instead of running to the server room to check on things, you contact the host.
Security - IMHO a wash - depends on what the company fears most The data is safer from external threats when internally hosted. But the risk is equal for internal threats, which are nastier. And the hosting company will almost certainly have a better reliability and backup/recovery processes, again because the economies of scale will allow them to do so.
History - depends on the company If the internal IT has done a good job and is well regarded, changing to an external provider will be perceived as higher risk. The flip side is also true .. if IT has been mediocre, an external provider can likely improve things.
Flexibility - favors internal most of the time As the OP noted, internal deployment can typically be more flexible in terms of configuration, and in terms of what services can be offered to the organization.
I would agree with statements made by other posters stating that there is no "one size fits all" solution. Having said that, I tend to think that on-premise hosting of Exchange is a "fits most" solution.
My experience is mainly working with small Exchange installations (up to 2,500 mailboxes) and I've yet to see the "TCO horrors" that I read about in trade rags (mainly ads, really) re: Exchange. Properly configured on solid and reliable hardware, w/ a tested and reliable backup scheme, Exchange has worked very well for me. W/ that in mind, I'd be hard pressed to outsource email for any Customer who was large enough to afford an on-site server computer at their office. Windows SBS 2008 sets the financial barrier to entry pretty low (i.e. not a lot of months of recurring per-mailbox charges to break even).
Assuming I've got an on-site server computer, it seems silly to me to ship all my internal user-to-user emails out to a server on the Internet, only to bring the right back down again. OST files in Outlook certainly help, but the message still has to fly out to the "cloud" and back again for no good reason.
For my Customers, Internet connectivity typically comes in the flavors the local monopoly cable provider, or the local monopoly telco. Connectivity with any sufficient upload bandwidth to handle even tens of users is going to cost a pretty penny, since the local ISP service offerings are stilted heavily toward consumer-style (cable, xDSL) service offerings that have assymetric bandwith.
I'd like to crunch some numbers, but I'm pressed on time this morning. If I can remember, this evening I'll take a recent (last week) Customer deployment of SBS 2008 and break down the costs for the installation and migration to Exchange, and we can see what the break-even looks like for a hosted solution. (Given that this server will be doing more than hosting Exchange I do think it's a bit unfair, but I'll accept that handicap and we'll see what it looks like.)
(this point will be from my biased point of view)
Corporations with few employees but with huge amounts of data (media business) will not get happy employees if they have to poll an external server for attachments. Yes - cached mode will relief some of this problem, but whenever a user changes PC he/she'll will fall asleep infront of the computer.
My approach to outsourcing questions is to put this question first of all: Will it make our business more productive, cost aside? Sure, if we'd save a ton of money on it (that we can use to hire more salespeople or similar), it'd be a no-brainer.
If you have the resources aviable to run it internally - run it internally. Employees get literally lost when their e-mail or cell phone stops working = you make less money.
For me personally, outsourcing is the root of all evil. I's my job to ensure that the users have a solid and reliable infrastructure to enable them to do their jobs with the maximum of efficiency. It's also my job to ensure reliable backups are performed (and tested) so that when something goes wrong there will be minimum impact to the business. I would never feel comfortable moving that to some faceless remote hosting service. Nor would my employers.
There are other factors that apply to us due to our location. Although we have an ADSL2 line we are near the tail end of the cable run, so at best might get about 2Mb each way. It's different every time the modem reconnects. A check earlier today shows we are currently connected at 1.6Mb inbound and 675Kb outbound. For a small company such as ours a minimum cost of $25,000 just to get fibre installed is just not cost effective.
Quit apart from the costs, due to the bandwidth issue any form of hosted service, other than the web sites, is a no-go. Even more so when you take into account that we need to cater for large attachments. We are in the printing industry and need to cater for large print quality graphics. Our message limit in Exchange is set at 50MB and even that is sometimes not quite enough and images have to be broken apart and resent to us. Imagine the time it would take to forward such messages on internally.
The question heavily depends on your talent pool and needs. I mean, advantages to whom? If you're asking for your IT department (IT person?) then it depends on how experienced they are in handling email. MX records. Knowledge of mail systems (like why 10 meg attachments are generally a bad idea over the wire, while internally there are users that think nothing of huge attachments to each other then balk about cryptic bounce messages from relatives when emailing them the same attachments). How much will they need to learn on the curve vs. their needs?
For businesses with small IT departments and smaller needs then for administrative reasons (not sysadmin) they may prefer outsourcing just because they don't mind writing a check to have a service that gives them email. That's all they care about is they have email, they don't care if it's internal or external or delivered by unicorn.
In my view if the business is large enough to actually have an IT department and a dedicated IP, they probably shouldn't have any problem hosting a mail server. It increases availability (if your external connection goes down, they still have internal email available, keeping communication open among employees) and really aside from the basic tasks for any admin'd server it requires little extra care once things like backups are automated and the system is configured. It also can be integrated with your user management more easily (I.e., I add a user in active directory, they can get a mailbox configured right away, which in our particular case is rather common to have to alter, and I'm sure there are hosted solutions that can allow for connections to remote sites for active directory integration there are plenty where this would be an extra step).
In the end I think administration would prefer it in house because they don't see the bill and really don't care how it works as long as it works. For the IT people it comes down to the knowledge pool and learning curve, but in the end the advantages outweigh the negatives. Other things are subjective. Security? Reliability? Aside from reputation from a particular vendor and things you're already able to factor (like reliability of your Internet connection, caps on your internet transfer sizes) you don't know what the internal procedures or condition of the vendor really is. You may be outsourcing to a company that does little more than what your own company would do, but with it being out of sight you're just going to assume they're handling it (until something goes wrong). The boss, as far as he's concerned, just wants the unicorns to keep arriving with minimal spam.
On the surface, I'm going to echo the idea that there can't be a single answer to this. Since I've looked into this a couple times, here's why I opted against outsourcing.
Cost - Now that it's setup, running, and backups are in place, I don't expect to touch this thing, meaning my costs are done with. IIRC it was going to take less than 2 years to use up the cost of having done it in-house relative to outsourcing. I definitely hope I won't be replacing this box that soon!
Flexibility (also cost) - e.g. for per-mailbox billing, it's nice to be able to create a mailbox or test users on a whim. Also, way back in business school, there was a lovely unit on the advantages of small & limber startups vs. mature & lumbering corporations. It's our tactical advantage to be able to respond quickly, and outsourcing (adding at least one layer of delay onto getting service) is something I get involved in reluctantly.
Simplicity - create mailboxes separate from AD users or tie my forest to someone else's? As the sole IT admin here, I'd rather not.
...Of course, this all depends hugely on the comfort/education level of IT staff with Exchange (and/or the company's level of interest in furthering IT education)