I'm converting a very large application snapshot environment to an MSI
base for future versions of Zen. In the process we are making a lot of
use of MSI scripts with chaining. A common example are MSI packages
already packaged with InstallShield and that require a specific version
of InstallShield. Currently every application is chained to the version
of InstallShield needed (7,8,9,10,10.5, or 11). This works great expect
there isn't a test to see if that InstallShield application object even
needs to run. This is best illustrated with an example.

If I install GroupWise 7.01 I need InstallShield 10.5 installed so I
simply chain it to the GroupWise object and InstallShield 10.5 is now
available on that machine. If I install say Adobe C3 (fake example)
that requires InstallShield 10.5 next I can't assume the machine will
have 10.5 therefore I chain it. NAL will run the 10.5 application
object in the chain again when it does need to since it was installed

Is there a better way to manage this process so that I don't have "base"
packages being re-installed all of the time or even processed (I'm
assuming the InstallShield MSIs will check for Not Installed) if they
are already available? I want to allow the client to dynamically grab
the InstallShield it needs if it's not installed but not force it on
every computer wasting time and network bandwidth. I am already
prepared in this case to force install all versions of InstallShield to
all machines but we avoid this in our environment of 30K plus machines.

Thanks in advance for you advice,