They use .msi as their installer. I doubt the .exe is different for each user as I agree that would be pretty stupid.
Perhaps this explains how they do it.
Acording to the WIKI on .msi
Custom Actions
The developer of an installer package may write code to serve their own purpose, delivered in a DLL. This can be executed during the installation sequences, including when the user clicks a button in the user interface, or during the InstallExecuteSequence. Custom Actions typically validate product license keys, or initialise more complex services. Developers should normally provide inverse custom actions for use during uninstallation.