Well, wouldn't lack of <nocache> cause equal overcaching in the first <if> statement?
Less likely but also possible is that his browser follows the HTML DTD and rejects anything but <li> elements inside <ul>. Having random text as an <ul> child is semantically incorrect, so try View Source in the browser to see if it's there after all.