I have a .msi to install a program. Upon 'update', I want to be able to check whether there is an update available on a server, and if there is, install it.
If this isn't possible through msiexec or this method is problematic, what are the alternatives?
msiexec doesn't do anything like what you've described.
The msp file is a patch for the installed application, not the Installer service.
You can create a patch that is applicable to multiple products. You define this behavior in the patch's summary information stream.