It may be very old, but Microsoft's Compiled HTML Help (CHM) is still a common format for software documentation, as well as the occasional e-book.
Windows has a standard HTML Help viewer which should be able to display most files, but it’s a little fragile (just search the web for "regsvr32 hhctrl.ocx"). It may not work well if you need to display files in various character sets. And even if there are no problems, it's still a very basic viewer.
Kchmviewer offers an appealing open source alternative. The core of the program looks like the CHM viewer you know -- content tree and search on the left, viewing pane on the right -- but it has many more features, is better at handling non-English files, and opens EPUB documents, too.
The tabbed interface is a major highlight. Click the "+" icon to open a new tab and you can browse another part of the file, entirely separately, then switch between these pages as required.
If you regularly need to access particular pages then a bookmarking system allows you to save and recall them later.
The viewer has some small but welcome improvements. If the current page isn’t a comfortable size, then there's a zoom tool to shrink or expand it accordingly. And if, through some navigational quirk, you can’t see your current page in the Content tree, just click the Locate button and it’ll be displayed and highlighted for you.
There are a few bonus tools. You can display the HTML source of the current page, which didn't interest us very much. But there’s also an option to extract the entire contents of a CHM file – including any images – which may well be more useful.
The program can even open EPUB files. It refused to display one of ours -- we've no idea why -- but successfully rendered everything else.
Put it all together and kchmviewer is an excellent program, effortlessly outperforming Microsoft’s standard viewer, and if you spend any significant time browsing CHM files then you should probably download a copy immediately.