To debug this you must first understand the flow when this issue occurs.
If you look at app/Mage.php run() method, you will see that magento will redirect you to the install if an exception is thrown in that method.
try {
self::dispatchEvent('mage_run_exception', array('exception' => $e));
if (!headers_sent()) {
header('Location:' . self::getUrl('install'));
} else {
self::printException($e);
}
} catch (Exception $ne) {
self::printException($ne, $e->getMessage());
}
Leading up to that, a check in the method isInstalled will just print out an exception, if the application returns as installed.
if (self::isInstalled() || self::$_isDownloader) {
self::printException($e);
exit();
}
If you look at the method isInstalled(), you can see that magento will set the flag _isInstalled to false, if the local.xml config file in /app/etc/ does not exist, or if it does exists, and the date in the <install> section is not set, it will also result in false.
You should be able to solve the issue/find the reason, if you find what exception is thrown to cause the redirect to install.
The most likely issue (as mentioned in another answer) is file permissions.
Another likely issue is that your are using shared / mapped filesystem resources, and the config.xml file is temporarily unavailable.
Since redirecting to the installer is a more serious issue, than printing out an exception message, I would temporarily adjust the redirect to simply output the exception.