Many things can interfere with cron. On the server side, sometimes cron gets hung up and needs to be restarted. On the Drupal side, just having too much cron-triggered stuff happening can drive it to timing out. Sometimes playing with the time between cron runs can fix that kind of thing.
Without more specifics I can't really say what else.