Question: A lot of software installation dialogs on Windows throw up a query to the installing user asking if this software should be installed for **all users** or the **current user**.

Why do they do this? Why not just install for all users? What is the real technical difference between the two options? I would like to know the difference in aspects like the registry, file execution permissions, files in the file system, start menu shortcuts and such.

Answer: 
In a nutshell...

Install For All Users would be used when you want the program to be "active" for anyone who logs on to the computer with their personal account (if there is more than one login). A good example would be an antivirus program, that you would want to be available while any user is logged in.

Install for Current User is normally used under an Administrator account for something that handles disk operations and other admin-type functions, such as Acronis True Image, a keylogger (to track what non-admin users are doing while logged on), and other disk-related or sensitive software.
I think that there are two ways to answer this question:

For a system admin
------------------

* You've got applications that you don't want anyone to use other than yourself--**current user, admin**--,
* you've got bs/bloatware apps that you don't want launching in admin mode but somehow monetize things for your company--**current user, guest/non-admin**--,
* you've got applications that you're going to control with their built-in security measures, like AV (mentioned by NC Phantom), which has internal password protection--**all users--**, and then
* you've got applications that you're going to monitor--**any**.

For an every-day user
---------------------

* You've got applications you want everybody to be able to use because they're awesome--**all users**--,
* you've got applications you want your kids to use but don't want your friends to suddenly think you're using (like Candy Crush)--**current user, guest/non-admin**--, and
* you've got applications you don't want your kids to mess up or your wife to know you're using--**current user, admin**.

For an advanced every-day user
------------------------------

Make an extra non-admin account for your friends, brother, etc., so they don't get on the guest account, start playing Candy Crush, and annoy the crap out of you.