The UI sequence should never make changes to the state of the machine. It should only gather, validate and report data to the user. All changes must be made in the execute sequence.
There is a mutex in Windows / MSI ( _MSIExecute ) that enforces one execute sequence per machine. Therefore you cannot call msiexec from an MSI. But what you can do is author a Major Upgrade rule to detect the other product and remove it. The Windows Installer standard action RemoveExisitingProducts can uninstall any MSI not just previous versions of yourself.