Term Server, Citrix, LTSP
a) Traditionally, this is what a thin client is. Some PC running a full set of apps, but without a hard disk, is not a thin client even though many people call it one. X Terminals, the old Wyse things you could get to access Windows Terminal Server or Citrix servers, those were thin clients.
b) This is what kills thin clients. When a thin client costs more than a cheap desktop, people are going to buy cheap desk tops. Even if they are just running them as a thin client. I mean a $500 thin client? F that.
If done right, there's BIG BIG savings to be had here. Engineers, developers, etc., if they are taxing the resources of a desktop, it's not sensible at all to give them thin clients, they will just all be KILLING a shared server instead and hating every minute of it. Most users? They don't run the desktop all that hard, and the administrative savings of centralizing are HUGE. HOWEVER, if thin clients cost way more than just some desktop, it makes more sense to find low power desktops (there's some Atom desktops, 1ghz Cyrixes, etc. that are like 5-10W desktops.)
Windows Terminal Server or Citrix? Licensing costs eat into the savings A LOT. And inefficiencies in Windows' design increase the RAM and CPU power needed on the server somewhat. But still something to look into.
LTSP (Linux Terminal Server Project?) Very slick, no costs for the server environment; if the user is given permissions for USB, etc., it's just like they have a local desktop except the home directory is centralized, and apps can either run centrally or on the desktop as the admin desires. Since executables are only in RAM once, RAM requirements are much lower than you'd suspect. Setup is SO easy, I installed LTSP on an Ubuntu box, and it was like "install this package, and wait about 10 minutes while it sets up." You have one ethernet device for outside world, and one where it hands out the dhcp addresses and arranges netbooting of LTSP software to PCs. Set PCs to PXE boot, set X terminals to point to the LTSP server. There is no step 4, it just goes to a ubuntu desktop style login prompt. Probably it could be set so given machines auto-logged in to given desktops too.