had the same problem. this has to do with Icon handlers in the registry. difficult to fix. you have to do it manually in the registry. try opening "htmlfile" key in the registry - full address:
HKEY_CLASSES_ROOT\htmlfile\ShellEx\IconHandler .
it points to something like:
42042206-2D85-11D3-8CFF-005004838597 (that's the icon handler)
go to that key
create a subkey called DefaultIcon with the value:
E:\Programme\Internet Explorer\IEXPLORE.EXE,1
below "42042206-2D85-11D3-8CFF-005004838597"
and below "htmlfile"
if it doesn't work, remove the iconhandler:
delete the "shellex\iconhandler" folder in HKEY_CLASSES_ROOT\htmlfile\ShellEx\IconHandler altogether.
To display the html icon in winzip and other programmes, try then to create shellex\iconhandler\{42042206-2D85-11D3-8CFF-005004838597} subfolder in htm/html keys ( HKEY_CLASSES_ROOT\.htm & HKEY_CLASSES_ROOT\.html ).
You have to clean the icon cache before you notice any differences. so restart the pc or log off/on. don't use the icon repair feature of power toys xp, they don't work properly.
I also made the experience that if you have too many contextmenu entries on htm files, then some of them won't be displayed (limited number allowed). so let say you have "open in frontpage", open in golive, open in frontpage, open in word, open in winrar, decomress with winzip etc. etc. - the more contextmenu entries you have the bigger is the possibility that some of them won't be displayed. strangely enough, this is only the case with htm files on my pc, not with htmL extension files.
to solve such a problem (if it exists for you too) remove some of the context menues. not all entries are necessary - winzip for example adds too many entries, some of which are useless