There appears to be lots of information on the web about working around the "Error 2869" problemby setting the NoImpersonate bit in the MSI file. We tried this solution for our application, and while it did get rid of the 2869 problem, it created a new problem for us.
We're using a custom action on Commit to launch our application at the end of the install, using System.Diganotics.Process.Start(). Because our application uses user-specific registry entries and folders, using NoImpersonate causes the installer-launched application to run as the wrong user and use the default user profile.
Is there some way around this?