It is indeed the improperly closed comment. Whether that comment appears in the <head> or <body> in this case does not actually matter one whit. Obviously <link> elements are supposed to be in the <head>, but in practice browsers do not care about them being in the <body>.
The fact that this one does not end with "-->" though is the problem. Effectively, the comment does not end at all!
The original asker claims that it "works fine on PCs and Macs in any browser [he has] tried". I'd suggest that he's probably not tried very many recent ones. Some older browsers will happen to have error correction algorithms built-in that might be able to cope with this page. However, newer ones are all converging on the "One True" HTML parsing algorithm that appears in the HTML5 specification, which treats the page in question as basically one big comment, starting on line 12 and ending on line 105.
Using lwp-request (part of LWP) and html5debug (part of HTML::HTML5::Parser)...
[tai@miranda (pts/3) ~]$ lwp-request http://www.cfhs69.com/cgi-bin/alumni001A.pl | html5debug --output=err
sniffing:chardet [complicance: INFO; line: 1; column: 1]
not HTML5 [complicance: MUST; line: 4; column: 0]
charset label:matching [complicance: INFO; line: 9; column: 0]
unclosed comment [complicance: MUST; line: 105; column: 7]
perl -E'sub Monkey::do{say$_,for@_,do{($monkey=[caller(0)]->[3])=~s{::}{ }and$monkey}}"Monkey say"->Monkey::do'
|