This article by Matt Asay lays out the various barriers to entry for open source in the SMB market. Although I read Matt's blog occasionally, I find we rarely agree. The fact we agree on this topic is noteworthy in and of itself. In general small and medium businesses do not have massive IT staffs. That's not necessarily a good or bad thing, but it does mean they often look for IT strategies that are widely and easily supported, have regular upgrade cycles, and are reliable with minimum tweaking.
I'll be the first to admit, Linux does some things better than Windows. ESX is a great example, and there are many lesser known areas where Linux rules, too. Sill, even for anything Linux does well, there are many Linux "experts" that can't set it up without a fairly steep learning curve. In addition, most of the high performance Linux apps I've played with require much care and feeding and near-constant tweaking. The comparable Microsoft app may offer 80-90% of the same performance with an easier-to-use interface and experts abound. Just look at the MS MVP program. You can find experts on even the most obscure technologies.
In other areas, say email (Exchange 2007), collaboration (MOSS 2007), or IM (OCS 2007), Microsoft is the clearcut winner because of the reasons mentioned above -- the most important being the supportability model. It's not unreasonable to hire a consulting firm to architect and deploy Exchange, Sharepoint and OCS then have a single run resource to manage the day-to-day operations for a SMB. Trying to find a single Linux guru that knows qmail, desktop integration, metadot, jabber and asterisk would be darned near impossible and leave you with significantly less functionality than the comparable MS technologies. In addition, if you were able to find this Linux guru, what if he gets hit by a bus? (or finds a better job?) There's no immediate alternative support available. That's scary for an SMB that has no real technical knowledge elsewhere in the business. Finding another Microsoft tech who only needs run knowledge (not architecture) is simple whether it's hiringan employee or using a contracting firm.
That's the difference that I think will keep MS in front in the SMB market for a long time to come. I think it will take mass organization and some consolidation in the open source world before it can mount a real challenge in this area.