I've been having a headscratcher on a website for awhile and just found what the problem is. PROBLEM: When cron.php is requested, instead of running cron.php it redirects to some page on the site. This means the cron hooks aren't executed because instead some other page gets loaded. Drupal does a lot of maintenance stuff in the cron hooks, so it's bad news if they don't get executed.
Documentation of the normal setup for cron.php: http://drupal.org/cron .. I had done all that, and their troubleshooting section did not cover the problem I had.