What if the user has windows on D:
Yeah, that's a tricky bit. Blitz3D had the nice SystemProperty ("windowsdir"), but I don't know of an equivalent in BlitzMax (that doesn't mean there isn't one lurking somewhere, though <g>).
There's a recent thread on enumerating all drives on a PC. Perhaps you could check each one to see if it contains "\windows\hh.exe": http://blitzbasic.com/Community/posts.php?topic=57747
Or -duh- it just hit me that since hh.exe is in the \Windows dir, I didn't need to specify a path to it. This should work regardless of which drive Windows is on (as long as hh.exe exists somewhere within the set of Windows paths):
system_ "hh.exe " + AppDir + "\BlitzMaxHelp v118a.chm"