The first and most obvious question you should be asking yourself when you build HTML pages is what level of features do you intend to incorporate into them? If you have a particular task to achieve in a page, what's the best way to go about it?
When you build a Windows 32-bit application with a programming language like Visual Basic or C++, you generally don’t worry about which particular version of the operating system your user has (it could be Windows 95, Windows 98 or Windows NT), or what other software they may have installed. You just get on and design the interface and the underlying working parts, stitch it all together, and compile it.
Of course, creating Web pages has become easier as more tools have become available. At the same time, however, we keep changing target browsers that these tools are aimed at. As soon as one of the Web design programs gets onto the market, there's a new browser available with features that are not supported. The goalposts just keep moving. You have to feel sorry for the people who build these tools (except, perhaps, for Microsoft because they make one of the two mainline browsers, and so they're partly to blame).