Something else I thought of (perhaps another argument for the counter logic that Rob suggests......)
Let's say there's a change in business rule (I'll use the Timesheet Approval Use case)...
If you set up the counter variable in a custom object, it would be easier to control...Let's say instead of every 28 days, the business wants it to run bi-weekly (i.e. every 14 days).
Haven't entirely thought through the design yet, but if you house the interval as attribute in the custom object, and there's a change, you simply change that value.