Вы пытались передать TARGETDIR
в командной строке?
msiexec /i yourpackage.msi TARGETDIR="C:\Foo"
Если вышеописанное не помогает, не знаю, может ли это помочь в этом случае, но я использовал инструмент для редактирования файлов MSI раньше, он назывался Orca , возможно, вы можете использовать его для перезаписать некоторые настройки MSI?
Другая возможность, возможно, заключалась бы в том, чтобы выяснить, какие записи MSI используются в реестре для определения того, к чему разрешает папка ProgramFiles, и изменить эту запись перед запуском MSI, а затем изменить ее обратно.