Because you cannot know a priori what drives will be available on any given system that your distribution might be installed to, all installation locations are typically described using a symbolic base location (like Program Files directory, or Windows directory, or Windows Volume Root) and a relative path. The system might not even have a C: drive; the symbolic locations are resolved to the proper drives and paths at installation time. For this reason, the only way to guarantee a valid default installation path is to use these symbolic base locations.
It is possible to work around (read "hack") this limitation, but it requires that you do some post-build, hand-editting of the .msi installer file using a tool like Orca (comes with the Microsoft SDK, a free download). If you think this is something you are interested in, I can explain what needs to be done.
In order to figure out what the best/easiest workaround is for you, it would be helpful to get a little more about what your needs are, and what version of CVI you're using.
1. Which version of CVI are you using? If 8.0 or later, are you including any other drivers? If so, the situation may be complicated by the location of your National Instruments directory.
2. You mentioned that you want to assure that nothing gets installed to the C:\ drive. Is it sufficient to change the default installation directory, or does it concern you that the user can still change this path to some directory on C:\ at install time?
3. Do you know for certain that all your target machines have a particular drive letter?
In this case, I would recommend just setting the default installation path via a command line argument to setup.exe:
>> setup.exe INSTALLDIR=E:\
Replace "E:\" with whatever path you want. You can create a batch file or other script to run instead of directly running setup.exe.
The other option would be to create a custom action (in the .msi's CustomAction table) and add a call to that custom action in the InstallUISequence and InstallExecuteSequence tables. You could create a simple merge module to do this, then add the module to your distribution kit via a specially-named file group. The module will get merged into the .msi when the distribution is built.
If for whatever reason you don't want to use a script, I can create the merge module for you (just tell me what default path you want) and tell you how to add it to your distribution kit.