Tim, I don't know if this would be within your SMB budget (I work for a "SMB" but we're on the large side of "M").
Do you have more than one location, and are they well networked? If so, look into putting some of your white boxes at the other location and using a product like XOSoft. (A great little company, but recently bought out by CA. So far, aside from the loss of the personal touch, still OK).
Without too much trouble you can set your files, SQL Servers, and Exchange servers to have hot failovers in the other office. The file servers just copy files when they change, the SQL and Exchange versions do block copies and understand the transactional integretity issues of each.
There's a few ways to set this up, but what we do is let XOSoft do dynamic DNS update on failover. So if you fry your Exchange server, the spare (which should be within a few seconds of the original) can update DNS so that it becomes the Exchange server (apps still need to reconnect, so it isn't totally seamless, but you can do this in a couple of minutes). Then you can start a reverse scenario so that when you get your main server rebuilt, it will get it in sync and you can switch back. This is also useful just for maintanance, but I think the price (far from free, but doable for some SMBs depending on how expensive you consider downtime to be) needs to be justified as disaster recovery: if something happened to the main office, you could keep running from the other office.
Of course, if you don't have the second office, or you don't have the bandwidth on the network between the offices, this is a non-starter. But it is very simple and affordable and easy to do as compared to Clustering.