I just use the built in zip capability within Windows. Right-click-->send to--> compressed (zipped) folder. Preserves files and folder structure inside the zipfile.
I think it fails if there are empty directories though (which seems stupid to me). I s'pose there might be other limitations too, like number of files/folder or ultimate zipfile size...but I dunno what they are. It's not something I use very often.