I've done some research into Linux clustering and the most commonly used technique (sourceforge.org uses it) is LVS - Linux Virtual Server. Essentially, all outside traffic flows through a director machine to a bunch of identical webservers on an internal network. The director (which is the only machine that needs special software), does NAT (network address translation) for the rest of the machines, so to the outside world, it looks just like one big server.
For more info on LVS check out:
We've decided to go with a much simpler system to distribute our server load, Round-Robin DNS (look at http://hacks.oreilly.com/pub/h/79). We plan on getting about five dual Opteron Moodle servers, and one dual Opteron MySQL server. We expect about 50,000 registered users, and about a million page hits per day by the end of the year. Will report back about how things work out.