These are the steps I took:
I know this question is already answered, but I experienced a slightly different issue and found a work around --
I'm sure I'm missing something obvious in the Python configuration (2.5.4), but I'm having issues with .pyd versus .dll. (I had the same issues with the Python subversion libraries.) I see osutil.pyd in Mercurial\library.zip, but it fails to load it. Therefore, I unzipped library.zip and then copied *.pyd to *.dll, e.g:
REM Ugly DOS... Recursively renames all .pyd files to .dll
for /f "tokens=*" %%a in ('dir /s /b *.pyd') do copy "%%a" "%%~da%%~pa%%~na.dll"
Make sure the unzipped library directory is in the PYTHONPATH, but after this I successfully can execute: from mercurial import osutil. Also remember to copy or move the Templates directory to the newly unzipped library directory.
Follow the steps in Section 5 of the HgWebDirStepByStep for the rest. I did not experience the "Gotchas" in Section 5.3 though.