Hmmmm that is a problem somewhat. I mean all you really need is a new boolean to say, "is a shield on?", then the program can say, "If the shield is on, apply a 5-15 second cooldown". Maybe it's not so simple, cooldowns could be tied to other things, but I am a computer science major... so if I'm wrong please to me!
Anyway, I'm just trying to be thrifty. The devs could do ridiculous amazing things to innovate shield use if they wanted (I'm sure they could, as demonstrated by AI War and Tidalis), but I figured I'd recommend a simple fix to a pretty significant issue. There's always later, but time is precious.