If you would like to use workflow to escalate a case when the "Follow Up By" date is met, or alert a user when a task's "Due Date" expires, CRM 4.0 has a method to handle this that is slightly less intuitive than the way workflow worked in previous versions. (In CRM 3.0 there was a workflow action called "Wait For Timer" that you could use to check the due dates on a record and then trigger another action.)

In 4.0, you need to reference the Workflow's "Timeout" value. Let's use the example of escalating a case to a user's manager if they haven't resolved the case by the "Follow Up By" date:

1) Create a new workflow rule for the Case entity, and set it to be triggered when a case is created.

2) We are going to set the rule to wait unitl 1 minute after the case's Follow Up By date, then check to see if it has not been closed or set to a waiting status reason, and then assign it to the original owner's manager.

Wait_Condition_Workflow_Cases_Microsoft_CRM

3) The trick is setting the Timeout in the first step. Click "Add Step" and then "Wait Condition." Edit the wait condition as follows: Select Workflow | Timeout | Equals and then use the Dynamic Conditions on the right of the form to enter 1 minute | After | Case | Follow Up By. (See below)

workflow_wait_condition

Here's how to set the Dynamic Condition:

dynamic_timeout_condition

The result is that workflow will wait until 1 minute after the Follow Up By date/time on the case, and then assign the case to the owner's manager if it hasn't been completed. You can use a similar workflow to trigger events for overdue tasks or opportunities that haven't been closed by their estimated close date.