Did you miss the part where he was overwhelmed as a child and ran into the closet and used his heat vision on the handle to keep the teacher out while the kids were calling him a freak? Did you miss the part where Pete Ross (the fat red-headed kid) was making fun of him, he saved him, then in another flash back he offered him a hand up after other kids were picking on him? And his father talked to him about not hitting the kids. They had several scenes establishing that he was bullied heavily as a kid and his father taught him never to respond in kind, but it also seemed clear that his way of getting back at people without hurting them was precisely to be passive aggressive. That’s why he didn’t hit the guy in the bar that poured beer on him, but then trashed his truck. It’s also why he had the argument with his father shortly before he died. And it’s exactly why when Zod threatened his mom he went completely overboard, because he could FINALLY respond in kind, and why he was contented to see him in pain being overwhelmed by his senses.
Zod wasn’t a maniac, at least not until the very last scene. Zod’s entire purpose in existing was to protect the Kryptonian people and, when you take that into consideration with the understanding that it’s his sole purpose for existing, a lot of what he was doing makes perfect sense. He was absolutely right that the Kryptonian council had led them into ruin, and he was doing what he thought he had to to help his people survive, which was to remove from power those who had led his people to ruin, get the codex and the other tools he needed to establish a new Krypton. The only real difference between his and Jor-El’s approach to the council’s poor decision was that when Jor-El was denied access to the codex he just went and took it and sent his son off with it, whereas Zod was more direct and was willing to take it by force.
The other thing was that differentiated them was the Jor-El hoped that the future Kryptonians could live alongside humans, whereas Zod was willing to take the steps necessary to preserve his people, even if it meant wiping out other people. But that also makes sense, considering Jor-El was a scientist and a hopeful visionary, while Zod is a militarist.
In fact, one of the more subtle points in the story was when Kal-El and Zod first met. Superman had just discovered his people, but was wary, and Zod greeted him warmly. There was, at least for a brief moment, the hope that they could be friends, and if he had been able to fish the codex’s location out of Superman, he never would have threatened his mom and, hell, he may well have been able to get the codex out of him and they wouldn’t have become enemies until he’d realized he was willing to destroy the Earth to revive Krypton.
Really, Zod didn’t become a maniac until after they’d destroyed the World Engine and Genesis Chamber and sent the other Kryptonians back into the Phantom Zone. But, really, can you blame a guy whose sole purpose in existing is taken away from him for going mad and wanting to exact revenge? It wasn’t until that last scene that he truly became a bad guy. Up to that point, he may not have quite been a good guy, but he had a noble cause, just as an ammoral militarist, he was willing to go to whatever extreme he felt was necessary to best assure that end.
Now, sure, Superman always saw him as a monster, as we saw from the semi-dream sequence, but that was just from his perspective, because he saw his willingness to kill humanity as horrifying, rightfully so. But the key point is, up until the very end, Zod always believed that he was doing the right thing.