Great suggestions Paul - based on those, here's what I've been playing with the past few days:
I've worked up a simple workflow in SPD that periodically updates each item in the list (since modifying any MetaData in an item will also update the "today" element) making sure that the calculated column values will accurate. Essentially, in order to do this, I've had to create an intentional "infinite loop" that on item change will fire off the workflow. Since the actions in the workflow modify the item's data, each time it ends, it calls the workflow again, and so on.
Although it does work (I've tested it the past few days), I'm not too excited about having an endless loop running all the time, and am also concerned with the amount of "junk" data that is being written to logs each time the workflow runs. Part of the problem is how to take in account for when a new item is added to the list, or more to the point, at what time of day the item is added. Obviously, I told the workflow to start when a new item is added and when an item is modified, but I wasn't able to see (perhaps someone else can answer this part) a way to tell the workflow to wait until 12:00 am before running. So, what I wound up setting was a delay of an hour in order to capture items added all throughout the day - so at most, the "today" element will only off between 12:00 am to 1:00 am. This means the workflow will run 24 times each day for each item in the list - not counting any modifications of items by the actual users, which would fire off the Workflow again on each edit.
So again, yes this does work, but I'm not to keen on the looping part, and I'm not convinced that it the best approach to take (although, since it is a non-programmatic approach, it may be viable for those not wanting to "code" a solution).
The other approach I worked on (which I feel is much better), was creating a simple console application that I ran as a scheduled task. The program runs each night (just after midnight) and simply runs through each item on the list and updates a property - thereby updating the "today" element, which lets the calculated column return an accurate result. This approach really seems to work more elegant since its a single process that hits all the list items at once, and is very easy to take offline if needed.
I'm going to work on each of these a bit more, but I am making some progress, so I'll post back when I have more.
- Dink