Dear Hdwivedi23,
in order to achieve such functionality you should call the installer from another process.
You may try this;
The external process may be a dummy wrapper installer which "only" embeds the real installer. The wrapper may be created from the pre-defined "Blank" project template (a completely blank project with a blank setup script). To embed the real installer with the wrapper, add the "real installer package" to the SUPPORTDIR of the wrapper project (see IA documentation for more details about SUPPORTDIR).
Both the wrapper and the installer should be built using the "Never Elevate (as Invoker)" UAC elevation level.
From the Wrapper you should execute "the real installer" forcing it to run As Administrator and If the user doesn't confirm the ELEVATION, you should execute "the real installer" one again, but this time without elevating it.
You may use the "ShellRunas" utility (
https://technet.microsoft.com/en-us/sysinternals/cc300361) to run "the real installer" as ADMIN from the wrapper or you may create a very simple application at such purpose. Of course, even this application has to be included with the wrapper (via SUPPORTDIR ... in order to call it at wrapper runtime).
Also note that by default limited users doesn't have access to restricted system areas as "Program Files" folder (due UAC). To skip this limitation, the package has to be installed under "C:\Users\>USERNAME>\AppData\Local\" and this is the trick used by the Firefox installer when installing under a limited account context. Therefore from "the real installer", you should handle the TARGETDIR path accordingly and this can be easily done via IA setup script.
Hope this helps you.
Regards