You could upgrade your server farm to use clustering where all settings and data are transferred from server to server, but that is a whole different ballgame and brings with it a host of other issues, but bring more stability and load sharing to the setup.
Depending on how your system is set up, the solution is different.
Are the terminal servers individual servers with individual AD's or are they all authentication up against the same AD server?
If they are authenticating up against the same AD, you can set up a group policy defining what programs can and cannot start up under the users. You have to define this in each AD, if each server has their own, but here you cannot avoid having to create the users individually on each AD.
Running multiple Terminal Servers should preferably authenticate against the same AD for easiest user management.
If each server has their own AD, you can set them up to run inside the same domain and replicate user settings between the servers. This should prevent the issue of users having to setup their settings for each server they log in to.
Remember to play with these issues in a "sandbox" before you decide to implement any solutions. Messing with these settings/solutions be problematic for active users.
By "sandbox" I'd recomment a duplicate setup of a part of the network inside a VMWare shell, where you can play all you want without disrupting the actual production environment.