Licenses are on a per user \ seat basis. You would need a license for each real, and potential, user (instance). For example, if you usually have 50 unique users, but could have 500, you would need 500 licenses.
A single key will be issued, and depending on how many you purchase; that key will have that set amount of allowed activations tied to it.
For virtual PC deployments (Citrix), much depends on how your seats are managed between log on and off (if they are destroyed on log off). Also, if the instance changes in any substantial way (SID, MAC, Hostname, etc) with each instance (even for the same user), scripting deactivation would be crucial. Should any instance / VM be destroyed prior to deactivation, there are tools on your account page to deactivate them manually.
It is important to note that, for activations to work, Internet access is necessary at the client level and at the time of first use. To see if the activation process will work with your security protocols (firewalls, etc), please install and activate the trial as the process will highlight any issues.
Here are some of our common apps and their silent install \ activation \ deactivation options:
Install \ activation:
http://sd.stardock.com/Support/LicenseServer/Corp%20Installer%20Bats/Start8SLS_setup.zip
http://sd.stardock.com/Support/LicenseServer/Corp%20Installer%20Bats/Start10SLS_setup.zip
http://sd.stardock.com/Support/LicenseServer/Corp%20Installer%20Bats/Fences3SLS_setup.zip
Deactivation:
http://sd.stardock.com/Support/LicenseServer/Corp%20Installer%20Bats/SD_DeactAll.zip