I happened to come across a serious problem when installing my own software with Visual Installer 1.1: the installation of my product on Windows 98 computers caused a system crash during the next Windows start-up. The only way to fix things was to reinstall Windows from CD, over the existent version!
The only modification done on the computer used to build the software and the setup (a machine dedicated to this sole task) was the installation of IE6, followed by its security patches.
After some experiments, here it is the explanation for the problem. Visual Installer correctly detects a dependency to SHLWAPI.DLL during the build (as it did before the IE6 was installed). However, this DLL was replaced by the newer version installed with IE6, and thus it was this updated DLL to be included in my setup package.
Once this DLL was installed on the client computer, it caused a system crash if the existent version of SHLWAPI.DLL was not the same. To fix the problem you can use a boot disk to avoid loading Windows, and manually replace SHLWAPI.DLL version 6.0.2600.0 (the one distributed with IE6) with version 5.0.2614.3500 (the one distributed with Win98 OSR2).
As for the setup package, you can avoid including the file and rely on the file already installed on the client machine, or include the DLL with version 5.0.2614.3500 (that will not be installed on the client if the setup detects that a newer version is already present).