Have you checked that the function runs as it should without errors in IE? Create some output both before your XHR, after your XHR and at the beginning and end of the result handler.
If the request really does appear to go through like it should, except that IE is actually using cached data and faking it, there's probably something you can do with webserver cache headers. But the simplest way to check this would be by adding a changing query string. Since you only perform one request per 5 seconds, using
http://example.com/file.php?t=Date.now()
should work fine