<p>As most of you probably noticed, when uninstalling an MSI package Windows will ask for the original <code>.msi</code> file. Why is that?</p>

<p>I can only see disadvantages to that:</p>

<ul>
<li>not resilient to network changes.</li>
<li>not resilient to local disk changes.</li>
<li>unexpected by users.</li>
<li>typically requires users to leave their desk and start a crusade to get the correct CD.</li>
<li>kind of proves installations are not self-contained.</li>
<li>promotes the use of unsafe tools such as msizap.</li>
<li>which in turn promotes the "next time I'll just use a zip file" mentality.</li>
</ul>

<p>Could someone shed some light on this?</p>

There are a few reasons for keeping the original msi:
The uninstaller uses it to know what files and registry keys were installed and make sure they are all cleaned up.
The msi may contain special uninstall actions that need to be performed.
It allows you do to a 'repair' operation from the Add/Remove Programs menu, regardless of whether or not you saved the install file yourself.
The normal way of things is for Windows to keep the file cached for you, so you don't have to think about it.  See your
```
%WINDIR%\Installer\
```
folder.  The only reason it would ask your for the original msi is if something is wrong with the saved file.  This addresses most of your concerns, though it does raise a new one (disk-space).