I was recently in a 2v2 where I felt like I was winning. It was Terran-Zerg (us) versus TT (them, double Terran), and some early aggression seemed to put us ahead... or did it?
Watching the replay, I noticed that our aggression really only put us back even, after all the resources spent on banelings and marines. We expanded with our perceived lead, to match their existing expansion. As Zerg, I double-expanded, and again, felt that we were in the lead after some more poking and prodding.
Yet, lategame was a huge fiasco. In an attempt to break their Siege-tank + mass Raven (with Vikings added later), I built Corruptors and Broodlords. This turned out to be a big mistake. Why? Well, simply put, we weren't going to outproduce both players making Vikings, and their vikings would kill Corruptors + Vikings, because of attack range and point defense. So we gradually lost the air war, and then the game.
Thinking back, I should have ignored the air and tech'ed to Ultralisks, and gotten 3/3 upgrades on them. Heck, I could probably have even dropped the Ultras on the Siege tanks, or even just a few zerglings and let the Siege tanks kill each other with splash.
So what am I trying to say? Well, despite what the enemy does, you still have to think of how you're going to push him back, NOT how to kill his existing units. We didn't NEED to push back the Vikings, only to kill the Siege tanks and get the ground back, so we could take the middle expansion, instead of seeing it fall to the enemy. So, try to make your opponents' mix "irrelevant", and get an army composition that they'd have a hard time dealing with, rather than playing "their way".