You would typically use a configuration management tool like SCCM or GPO Software Deployment to push software out to groups of machines. This has the downside of requiring a license for every machine that it's installed on.
You can also centralize your applications by running Remote Desktop Services (formerly Terminal Services) or something like Citrix XenApp so that the apps aren't actually installed on each machine but are centrally located and executed on a server. Usually you'd only need to have as many licenses as you have users, regardless of how many machines they access the application from. This differs from vendor to vendor though, so keep an eye on their licensing documentation.
If you want the user's environment to follow them (preferences, wallpaper, documents, etc) then you'll need to configure roaming profiles for the users in question and store their profiles on a file server instead of each local machine.