The scheduler module seems to be misbehaving, at least by my reading of the situation. Here's what's happening:
I have a node that I want to schedule to go live at say, 19:00 hours local time today. After having installed and configured the scheduler module, I go into the already-created node and set its scheduling options: "Publish on" gets "2006-08-09 19:00:00", and the time zone pulldown is set at "Wednesday, Aug 9, 2006 - 18:24 -0700". (I'm in California, so that seems right.) I submit the page and check the scheduler table in the database. The node is there, with a publish_on value of 1155150000 and a timezone value of -25200, which seems to add up to 19:00 local. So far, so good, I think.
Now, I run cron.php by hand to invoke scheduler_cron. I've put a print statement into scheduler_cron, which tells me that the value of time() that the database query is using to find nodes in need of publishing is 1155173159. This is greater than the publish_on time of the node -- that's the test that's being done in scheduler_cron -- and so the node gets published, sooner than it should. Note that 1155173159 translates into "Wed Aug 09 2006 17:24:49 GMT-0700".
The other problem is that the "changed" value of the node is changed to 1155150000, which seems to be missing timezone adjustment.
I'm rather turned around by all this. If I'm doing something stupid, I'll be grateful if someone will tell me so, but I really don't see it.