Well ZSS is pretty good at being safe on shield (dsmash, sideB and bair are all safe on shield) so a shield-happy opponent usually ends up taking a lot of shield damage, and then they don't shield as much.
If your opponent is shielding in front of you, it's very important to zone yourself so that you're out of their grab range. Similarly, identifying their shielding/rolling/spotdodging habits is important because it helps you land punishes that will make victory much easier.
A great situation to be in is BEHIND your opponent's shield, unless you're up against a character like Marth, Diddy or TL that have good OoS options in that situation (DB1, glidetoss and sh bair respectively).
Sometimes you just need to be patient. Remember that you don't always have to hit your opponent; you can just wait and see what they do when you're in their comfort zone and punish accordingly, or maybe not even punish at all. Just putting yourself in that situation even when dealing 0 damage can be useful because you gain knowledge of what they do in certain situations, and that knowledge will help you later on.
Remember; you have 8 damn minutes. Wasting 2 or 3 seconds like that isn't going to make a big difference, most matches last around 4 or 5 minutes anyway.