ok, i changed that code slightly so you might be able to drop it in now. the "normalize-space" function will chop off spaces so the input can be like "one,two,three" or "one, two, three". i haven't checked this code myself tho
the bit between the <whatevertagsyouwant> is where each value is actually printed.
<xsl:template name="splitnames">
<xsl

aram name="namelist"/>
<xsl:variable name="name"
select="normalize-space(substring-before($namelist,','))"/>
<xsl:choose>
<xsl:when test="string-length($name) > 0">
<whatevertagsyouwant><xsl:value-of select="$name"/></whatevertagsyouwant>
<xsl:call-template name="splitnames">
<xsl:with-param
name="namelist"><xsl:value-of
select="substring-after($namelist,',')"/>
</xsl:with-param>
</xsl:call-template>
</xsl:when>
<xsl

therwise>
<td><xsl:value-of select="$namelist"/></td>
</xsl

therwise>
</xsl:choose>
</xsl:template>
call function with
<xsl:call-template name="splitnames">
<xsl:with-param name="namelist" select="/NAM/NAM-Child1"/>
</xsl:call-template>