Not sure why being on a shared server would cause the issue, but it happens here too.
These are the headers when it works,
HTTP request sent, awaiting response...
HTTP/1.1 200 OK
Date: Thu, 19 Apr 2012 17:58:11 GMT
Server: Apache
X-Powered-By: PHP/5.3.10
Pragma: no-cache
Cache-Control: private
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Set-Cookie: PHPSESSID=5bc73bbc1e0bed815b670b4eb5cc3e76; path=/; domain=.forum-of-doom.com
Last-Modified: Thu, 19 Apr 2012 17:58:12 GMT
Keep-Alive: timeout=1, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html; charset=ISO-8859-1
Length: unspecified [text/html]
These are the headers when it fails,
HTTP request sent, awaiting response...
HTTP/1.1 200 OK
Date: Thu, 19 Apr 2012 17:58:11 GMT
Server: Apache
X-Powered-By: PHP/5.3.10
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Pragma: no-cache
Cache-Control: private
Set-Cookie: PHPSESSID=3aaa54f84421be5bea54c2d8b995ef7a; path=/; domain=.forum-of-doom.com
Content-Length: 0
Keep-Alive: timeout=1, max=100
Connection: Keep-Alive
Content-Type: text/html
Length: 0 [text/html]
When it fails, the server is returning a content length of 0 even though it returns a 200 status code. It's most likely a fault with the configuration of the web servers or caching.
If I had to guess, I'd say where-ever the site is hosted has a number of servers, behind a reverse proxy, and one or more of those servers is wrongly configured or has a corrupt copy of the site.