Vmware for example has an abstraction layer for clustering. The virtual machine(s) will move dynamically between the hardware nodes, thats a nice design for HA but it wont perform like a dedicated box will. Hence the acceleration layer, which is a good idea no matter what you're doing. I heard a joke once describing clustering... Better, Faster, Cheaper (pick any two).
Anyway, thats one way. Another would be a more elaborate distributed plesk install where you have web server nodes, mail server nodes, etc. Generally a good place to start with that is mail, the Maildir format is NFS aware so you can safely distribute mailboxes across N nodes using that (or GFS) without a whole lot of extra configuration work. You just mount /var/qmail/mailnames across N servers and you're done.
Apache is a bit different, Bruen already mentioned piped logging. Thats pretty critical for performance, but apache itself can be a bit touchy if you've got multiple daemons talking to the same files you can run into conditions where the first one that gets there wins (and potentially lose data).