I'm planning to make an ubuntu server (with load balancing to a few offstage computers) and have thin clients connect to it. Unfortunately, I don't know how to make a thin client, or the setup involved. I really like virtualization and servers and stuff like that.
Basically, I'd have a resource pool of computers sitting underneath a desk and I could have another computer, somewhere else that runs off of it... I'm not sure if I'm getting the concept right.
You can use X2Go for thin clients, both on the server and on the clients. You'd probably network the servers to add a shared storage using nfs or similar, and LDAP for users and groups. Then you install the software you need on all the computers. That means your user can log onto any server with his username and password and get his desktop and files. Then you can use DNS for load balancing, for instance.
There are many ways of doing it. The more specified your question is, the more detailed the answer can be.
I think actually X2Go has load balancing included, but I've never tried it. www.x2go.org has more info.
This is not directly related to virtualization, and "pools of computers", but the LTSP project allows you to boot several thin clients through PXE, in a way that users will be able to log in to the Ubuntu server and get a regular Ubuntu desktop, just as if they were sitting at the server's console.
Since this is a very common use case in schools, LTSP is one of the main features in Edubuntu; browse through the Edubuntu mailing lists for discussions on the subject.
I would also recommend Dave Richard's blog and his book: Linux Thin Client Networks Design and Deployment; although he uses another Gnome-based distro, the main concepts still apply, and he shows you clearly how to scale the graphical login to hundreds of users by deploying separate 'application servers'.
(links to edubuntu.org and davelargo.blogspot.com de-fanged by stack exchange)