Right now Java update works like this:
1. User has Java 6 JRE installed
2. User get's prompted that Java-update 6u2 is "ready for download"
3. User clicks yes, and the java-update downloads the online installer iftw.exe
4. Once the 200KB iftw.exe is downloaded in the background using the BITS technology (usually very fast), the user get's immediately prompted again that Java-update 6u2 is "ready for install"
5. The iftw.exe gets run, and then the msi engine now beings the download of the 6u1 patch.
This really is the wrong way to do things. After clicking on "ready to download", everything that gets downloaded should really get downloaded all at once. It's pointless to prompt the user and use BITS to download a small 200KB bootstrap. After clicking "ready to install", it should only be installing at that point (not downloading more). This is a really bad UE.
Note: The reason this is the way it is is because java-update and the online installer were developed in parallel by two teams in 1.4.2, and sort of thrown together like this. 1.4.2 was a very crunched/pressured release and tradeoffs like this happen.
It would be really great if we do all of the downloading using our own reliable code that uses BITS, rather than using the problematic msi download engine. It would also be great if "ready to download" meant what it says, and "ready to install" meant what it says. And the actual download will actually take place in the background using BITS, and it'll give the user a better perception of the update download.