Sometimes an application will not work for users other that the user that installed it. If the package is a true MSI, normally new users will trigger self-healing to complete the installation if it's needed. This precess updates the user's hive and/or profile. But sometimes this process doesn't work.
Try to use the /FU switch as the new user:
MSIEXEC /FU {Product_ID_of_your_package}
If MSI launches and the application does function there after then we have to automate the fix.
Since we now know we can rely on MSI alone we must use something else: ActiveSetup.
ActiveSetup is an older idea from MS to handle configuring applications for multiple users on the same machine. Ed Tippelt does have a great explanation on how to use it at:
http://www.etlengineering.com/installer/activesetup.txt
If not, then you have a poorly crafted MSI that will work only for the user that installed it. Sometime setting the ALLUSERS Property to 1 can help. If you created it from scratch, do what follows into the MSI. If didn't create the MSI and still want support from the developer, create a transform (MST) and do what follows in it.
-Check that user's profile for changes and add them in.
-Check that user's hive for changes and add them in.
Yes,
this is inherently a hit or miss attempt to fix things. If you are
the developer or don't mind having no support, you do have an
additional method at your disposal: re-package using SetupCapture.