If you have an unstored calc (result test) set to
If (Table::DateField < Get (CurrentDate) ; "Late" ; "")
then perform a find in your startup script for "Late" in that field, you will end up in a found set of those that are late.
Your script can then look at the Get(FoundCount) and if >0 can go into your customer dialog...you will still be in the found set during the custom dialog.
Finds are faster than loops.
Enter FInd Mode 
Set Field [YourTable::YourDateFIeld ; "<" & Get ( CurrentDate ) ]
Set FIeld [YourTable::Field2 ; "=Working" ]
Set Error Capture [on]
If [ Get ( FoundCOunt ) // records were found ]
Show Custom Dialog ["Records were found"]
See this thread for more examples of scripted finds: Scripted Find Examples