Sorry I haven't gotten back to you sooner... I really do have other things I do :)
As far as the date, I'm not sure. It would be tougher than getting the current date because you would have to subtract a day. This sounds easy until you think about new months, when you'd have to subtract a month and set the day back to 30 or 31. Then you've got years to worry about too. What you'd really need is a calendar system and from that end this doesn't seem like it will work from a batch file.
The zipping is pretty easy using either WinZip's undocumented command line options or for more options, WinZip's Command Line Addon.
After thinking about it though, I had an idea that might work a couple ways. First, is your server left on overnight? What you could do is run the batch file each day, and have it read an environmental variable and use that value as the previous day's value. Once it's done that, just have it reset that variable to the current day's value. This way when it's run the next day that variable will hold the previous day's value.
The problem with that is that if you shut the machine down, the environmental variable will be erased.
The other option is just to schedule the batch file to run at something like 11:55pm each night. This way you win two ways, first it's easy to get the folder name you want with the script I already came up with and second, there's nobody in the office to mess up the backup.
What do you think?