VS 2008 setups do this because it's pretty much the only way to get custom actions to work on UAC systems. If they worked by impersonating the installing user then even if you were an administrator they would run with limited privilege. Running under SYSTEM means they work on Vista. Visual Studio setups are not fully-featured and one opf the things you can't do with th IDE is choose whether you want impersonation or not.
But yes, the SYSTEM account often does not have network privileges are access to shares (which are user based, not system-wide).
So if you run with the acccount of the installing user your setup will not work on UAC systems if what it does requires admin privileges.
This kind of thing is why I usually recommend getting away from custom actions during the install. You have the config program as a separate program - the kind of thing you need in your app is for it to check whether it's configured or not when the user first runs it, and then fire off the configuration program.
If you want to change the impersonation for the custom action, you'd have to use Orca to edit the MSI file, and remove themsidbCustomActionTypeNoImpersonate bit (the bit that adds 2048 to the type).
Phil Wilson