I'm running multi-site, and some update (wordpress or host) some months ago broke images, but I've not been able to find much time to look into it till now.
Across all sites, the common problem is that images and thumbnails don't appear unless I try to 'edit' the image, when it suddenly shows up - so something wrong with the rewrite.
I managed to work out that php readfile had been disabled on the host, but that has been fixed, but still no images or thumbnails.
If I add the following to .htaccess, I get images and thumbnails working on *one* of the blogs, by bypassing msfiles.php altogether:
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-content/blogs.dir/3/files/$2 [L]
Using the regular rule I get a server 500 error