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.

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)

Here's how to set the Dynamic 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.