That, friends, is my installer rant for this month. 
Thanks Owen. As I already told I have no experiences in using the MSI and MSM. But I know like you that users sometimes are doing things that may harm the functionality. I think, it's a bit too optimistic not to check the existency of components at the beginning. And I like the communication with the customer if something's missing. And, yes - before I start to load any component (DLL, ActiveX, or any other application) I test if it exists. Either I hide the button (which would cause loading the component) in the OnInitialize event or I show an alert with the note to reinstall the app (for instance OpenDCL runtime is missing). But it's my taste.
Because of the history of our app, we were still copying the runtime to the app server as
James told. For almost the whole last decade there were nearly 2000 installations a year using the given runtime we were deploying along with the vlx. There were never any problems to any other application. Updating was very easy because only the files (vlx and arx) on the server had to be updated. Of course, that was only working because our app was very specific to a certain kind of customers. That wouldn't work anymore if an international release would be distributed, for instance.
When you call the MSI a "kludge", does it automatically mean that OpenDCL applications should not be distributed by Inno Setup? Did I understand right? Do you know any MSI authoring tool which can although work with the Merge Module. I does not mean Visual Studio, may be not everybody is using that. I've found
this list (you see, I'm not familar with it). If so, we should replace the Inno Setup Tutorial with a MSI tutorial.
Regards, Fred
P.S. June is almost over so I'm looking forward to your installer rant of July
