How does Windows Update decide whether or not to offer .NET Framework 1.1 and SP1?

I have seen a few issues in the past where a user visits Windows Update and is not offered the .NET Framework 1.1 for download even if it is not installed on the computer, or conversely the computer is offered the .NET Framework 1.1 even if it is already installed.

Windows Update has the ability to use a variety of detection methods to determine whether or not to offer a package for download, including checking for the existence of a registry key/value, checking the version stored in a registry value or the version of specified files on the system, and so on. Windows Update also checks for 2 types of conditions - Is Installable (the conditions that must be true in order to offer the package) and Is Installed (the conditions that will prevent the package from being offered if they are true). There is not any enforcement in the tool that we use internally that the Is Installable and Is Installed conditions be exact inverses, so there are cases where they could both end up true or false, which can cause incorrect offering behaviors.

Here are the conditions that are currently being used to control the offering of the .NET Framework 1.1 and 1.1 SP1:

On Windows 98, Windows ME, NT 4, Windows 2000 and Windows XP,

The .NET Framework 1.1 will be offered on Windows Update if the registry key named HKEY_LOCAL_MACHINE\Software\Microsoft\Active Setup\Installed Components\{CB2F7EDD-9D1F-43C1-90FC-4F52EAE172A1} does not exist. The .NET Framework 1.1 SP1 will be offered if HKEY_LOCAL_MACHINE\Software\Microsoft\Active Setup\Installed Components\{CB2F7EDD-9D1F-43C1-90FC-4F52EAE172A1} exists and HKEY_LOCAL_MACHINE\Software\Microsoft\Active Setup\Installed Components\{411EDCF7-755D-414E-A74B-3DCD6583F589} does not exist.

On Windows Server 2003

The .NET Framework 1.1 is installed as part of the OS, so it will never be offered on Windows Update. The .NET Framework 1.1 SP1 will be offered if HKEY_LOCAL_MACHINE\Software\Microsoft\Updates\.NETFramework\1.1\KB867460 does not exist.

Also note that as I described here, the .NET Framework 1.1 is separated into a core package and satellite language packs for non-English languages. If you visit Windows Update on a non-English computer and choose to install the .NET Framework 1.1, Windows Update will automatically install the .NET Framework 1.1 and the language pack that matches the language of the OS on your computer. They will be chained together and appear to install as a single unit in the Windows Update UI, although they will actually be separate MSI packages and have separate Add/Remove Programs entries.