to create a self-downloading software
installer is wrong, in most cases.
Sometimes in the development of a software project, the designers decide it would be better to write some "cool" installer-downloader software for their software, instead of just allowing the luser to download the software from the their site manually. I've seen this happen with Microsoft's IE, KaZaA, Netscape, Quicktime, and a few more.
The idea sounds nice at first, but the major problem is that in most cases the downloader is implemented poorly. It won't let you pick a mirror site, plus if the download breaks in the middle, unexpected things may happen: The installer could just hang or break off, exiting, and you have to restart the download from scratch.
I've even seen some installers use IE's downloading capabilities (through COM), and that's even worse, considering IE's downloader likes to break in the middle for no reason. In some cases, you won't even get to find which web server the downloader has used, leaving you with a partially installed software.
I would like to control how, what, when, and where I download. If you are going to implement an installer-downloader, at least provide the user with the option to also download manually.