After playing around a bit, using an example from mozzilla.org that worked correctly, I found that when adding HTML you need the following tag:
<xsl

utput method="html" />
A working stylesheet (Netscape 6.2 & Internet Explorer 6) follows:
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:strip-space elements="foo"/>
<!-- FileName: MATCH01 -->
<!-- Document: URL -->
<!-- DocVersion: 19991116 -->
<!-- Section: 2.5 -->
<!-- Creator: David Marston -->
<!-- Purpose: Test for //name match pattern. -->
<!-- set the output properties -->
<xsl

utput method="html" />
<xsl:template match="doc">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="foo/bar//baz">
<FONT COLOR="blue"><xsl:value-of select="@att1"/></FONT>
<xsl:apply-templates/>
</xsl:template>
</xsl:stylesheet>
The corresponding xml is: <?xml version="1.0"?>
<?xml-stylesheet href="select.xsl" type="text/xsl"?>
<doc>
<foo att1="c">
<bar att1="b">
<foo att1="a">
<baz att1="right"/>
</foo>
</bar>
<foo att1="a">
<baz att1="wrong"/>
</foo>
</foo>
</doc>