This was an interesting problem that I ran into today that really stumped me for a while.  The scenario was this, we had a flash file (swf) sitting in a document library.  This flash file was being served up on the home page of the site.  All of a sudden, flash file disappears.  I took a look in one of my favorite tools, Fiddler, and found that it was getting a 404 on the flash file.  I then navigated to the file manually and tried to open it.  When I clicked on the link in the document library I got an error stating "System.IO.FileNotFoundException The site with the id {some guid} could not be found."  It was basically like this file didn't exist, but there it was in the document library staring me in the face.  I tried the usual tactics, download a copy, open it up to verify the file is alright, delete the file in the doc library, upload the file again...same result.  I tried renaming it once I uploaded it and amazingly this worked.  This led me to believe that it was something to do with the BLOB cache.  For those of you who don't know the BLOB cache is a disk based cache used for storing images, css, javascript, etc.  By default this setting is off, but we had turned it on, as I think most people should.  This allows IE to cache these objects which is a very good thing for publishing sites.  It also reduces trips to the DB because the files are available on the hard disk directly on the WFE.  This led me to try resetting the cache.  You can do this through Site Actions/Site Settings/Modify All Site Settings/Site Collection Object Cache.  I checked all three checkboxes here and clicked OK and voila, flash file is working again.  My theory is that somehow the disk cache got out of sync and SharePoint was looking for a file on the disk that wasn't there, but was in the DB.  If anyone else has run into this issue I'd be curious to hear your experiences.