We are having a similar issue (http://deepcarbon.net), and it is intermittent. Most of the time it all works. But sometimes the images simply disappear. They were in the database, they were in the file system. Then all of a sudden they were not. Wondering if there's anything new on this topic.
So I know that the files table in the database has a status column. If the status is 0 (temporary) then the file will be removed the next time the cron runs. The other status is 1 (permanent).
I'm also curious about what jdu says "I would suggest bootstrapping drupal and manually running some of drupal's image functions to test it out". Can you explain that more? What functions?
So our current solution is to run a cron every night to determine if any files have been removed from the filesystem since the night before. And we archive the files directory, so we can restore them if need be. At least until the real problem
We've also turned on creating revisions for every change for every content type, so we know when someone does something in a node.
So far we have not had the problem again over the last 3 weeks, so debugging this issue is on hold.