What is causing Drupal to return a 404 HTTP header, but correctly return the page?
Are you using clean urls?

It is possible that Drupal is called through the 404 error handler which results in the 404 header.

Make sure your .htaccess configuration is correct and that mod_rewrite is enabled and you're allowed to override the relevant settings.