That's weird! From what I understand a Lead.FollowUp should always be saved in server time.. If a user on West Coast creates a lead then the follow up time should display in their time but be saved server time ...
Thinking through this:
User creates a follow up time for 18h00 on the 5th of Sept in a GMT -8 time zone.. Server time is GMT. This is saved as 02:00 on the 6th of Sept in the DB..
I guess this - Lead.FollowUp=CURRENT_DATE - would return false at 15:59 user time and return true at 16:01 ...
I think it's the user's current time that gets converted to server time rather than the server time converted to user's time..
I haven't done much with time zones..