msiexec [1] could be called from a Run Program step to install a .msi file. As far as running it only if it's not already installed, you could look for the existence of a registry key or file created/installed by the .msi file and conditionally build the step based on its existence.
[1]
http://msdn.microsoft.com/library/de...ne_options.asp