What To Do When You Can't Cron
One pet peeve that I have with 1and1 hosting was their lack of Cron Jobs. Cron Jobs are basically the Unix method of scheduling stuff, much like the Windows Task Scheduler. If you're on a Unix/Linux host, then they use cron jobs to schedule their internal activity. But not every host is kind enough to give you the same power to do so. Now that I'm on DreamHost, I don't have this problem anymore, but a lot of shared hosts still lock up the cron jobs. And since hosts like 1and1 aren't too reliable with their backups, doing your own backups becomes, more of less, essential. There are, of course, alternatives if your host doesn't provide you with cron jobs, such as phpJobScheduler (used this a lot back in the day) and pseudo-cron.
How The Other Guys Work
The way these work is that, they keep track of tasks and times every time the cron job is called, but you need to include them in one of your highly accessed pages (e.g. Home page). With phpJobScheduler, you can include the file in your PHP code, or you can include it using the img tag. Using the second (2nd) method spits back a transparent GIF of 1 pixel, so nothing will be displayed on your page and you could even use it within plain HTML pages if you needed to. When this is triggered, it checks the database for time of each task, compares that to the current time, them if x > y it runs the task. Simple really. Since they need to be triggered via a user visit, it's never going to be pin point accurate; this is why you need to include it on a page getting high traffic. Some of the scripts even have an option to build in to help with this. It's a sort of buffer time. This says that even if the specific start time of the task hasn't arrived yet, run it anyway if it's within the buffer amount. You would increase or decrease the buffer based on your anticipated traffic.