Your situation depends on the workload and business. Clustering adds complexity, and if you're not prepared for it, it can be a bigger pain in the butt than it's worth if you don't have a large number of users that will scream for your head if services are out more than a few minutes.
I agree that you should have some partitioning of services. Depending on your hardware, I would consider virtualization. Even there you have options as it depends on your budget; if the hardware supports it, you can spend big bucks on a SAN array to store your VM's and a backup server to make backups of your images, then use the three servers as front ends to run the virtualized machines with something like VMWare ESX.
If you're a small business with a relatively low number of users and lower demand on the services I'd consider setting up the three servers with ESXi and creating VMs to handle independent tasks, like one for file storage, one for mail, one for DNS...and from there split the load up among the three VM servers. Periodically I'd shut down the VM and copy the contents of the data to the other servers, so if you had hardware failure, the other two can pick up the slack and run your virtualized hardware from the point where you made the last snapshot.
It's clunky, but if it's acceptable to your given situation, it's not difficult to manage logistically.
From there you can look at options like running a backup within the VM's for easier recover. I.e., you have your file server running on server A. A dies, and you bring up the last snapshot on server B, but it's a snapshot from a month ago. Then you run a recover with your backup software to recover the VM up to the latest backup time, so you're only recovering hopefully a week or two of data instead of a whole machine.
This is assuming you have a good backup plan in place.
The drawback to the plan I mentioned can be significant; copying huge VM images among the machines can take a very long time. I can spend a weekend copying shut-down VM's to a backup area, then I spend nearly a week compressing them for offline storage on a small server that isn't used for much else at all. But it works for our situation, and may work for yours.
The pros are pretty big; multiple virtual servers makes it easier to recreate and migrate servers as necessary, and partition services and troubleshoot problems. One errant update isn't going to hose three or four services when it takes a server down, just one VM. If you're running VMWare, it's easy to move to their big-ticket servers if you choose to do so down the road, and VMs are fantastic for creating testbeds. You can take snapshots of servers and do repairs or maintenance on your physical servers after first migrating your systems to one of your other VM servers and users won't know the changes. It's also really nice for taking snapshots of system states. You can store your entire server on an external hard disk if need be, and take it to another computer!
You also have options for virtualization; Xen/KVM on your own with open source, ESXi, ESX, citrix, etc. with various prices (free to several thousand bucks) and support (on your own for free, or several thousand bucks for full support up the wazoo).
I'd test it out and see if it works for your business situation.