Certainly it's a core part of his persona, and has been as long as I've been a reader, that he goes out of his way not only not to kill the villains, but to prevent civilian casualties during battle. Once, for instance, he gave up pursuit of Doomsday when he (Superman) had gained a strategic advantage in order to save a family trapped in a burning building. Doing so, he surrendered the high ground and ultimately was killed during the battle that ensued after he caught up with the monster.
The idea that Superman is a hero who always finds the third way is a notion that's deeply engrained in every modern retelling of his mythology. Kingdom Come, one of the most popular Superman stories of the last twenty years, was essentially predicated on this notion. But it's not entirely true--Superman does kill, occasionally. When has he done so, and why? This might illuminate things a bit.
This is, let's note, not a comprehensive list but these are the most commonly-discussed instances of Superman killing someone or allowing them to die through failure to act. Obviously the latter happens from time to time in any heroic fiction, as it allows the threat to be neutralized without the hero getting blood on his hands.
Warning: Spoilers ahead for a lot of stuff, including Man of Steel.
Clones and Robots
Superman pretty unambiguously doesn't have a problem killing robots--or clones, given the right circumstances. Anything that doesn't truly have free will and a "soul" should watch its back if it's causing wanton destruction and threatening the safety of the citizens of Metropolis.
Characters like Hank Henshaw, Brainiac and the like are a bit different, as was Bizarro during the Man of Steel era, when he was essentially an imperfect clone of Superman who meant well. Superman would often contribute to the "deaths" of these characters with the genre-savvy knowledge that they'd be back. And in at least two notable cases, Superman mourned Bizarro, whose death occurred during battle with Superman but of (relatively) natural causes.
Superboy didn't actually kill anyone in this story, but he did vote in favor of Star-Boy's acquittal, effectively arguing that it would be unfair for an invulnerable person to cast judgment on someone who isn't invulnerable when they killed in self-defense.
This says that Superboy's understanding of the law trumped his personal moral code here, allowing for self-defense even using lethal force.
Superman, along with just about everybody else, saw the merit in killing the Anti-Monitor, who was essentially just a giant killing machine. it's arguable that while he had a personality, The Anti-Monitor was no more capable of decision making and moral distinctions than a robot or zombie/drone.
When the heroes of the DC Universe banded together to kill him, it wasn't a discussion or a choice. He had killed so many people, and existed only to kill more, that nobody objected.
Beings like Imperiex and Brainiac are variations on this theme. They're more than a computer, but barely, and it's clear that they're totally beyond redemption or even reprogramming. Superman does his best to avoid killing them, but if it happens he doesn't mourn and wail about it.
This one hits a little close to home, no?
The Supergirl Saga is almost certainly a key story that informed the Man of Steel script. Don't believe me? Last week, when I heard that Superman killed Zod in the film, I sought out the individual issues digitally. None of the three parts of the story were available.
This week, as part of ComiXology's Superman 201 sale, that story appeared out of nowhere and can be had for a total of $2.97. Meanwhile, of course, Supergirl appears in the Man of Steel Prequel and the events of the Supergirl Saga's climax line up with the controversial moment in Man of Steel's third act.
In any event, this story is arguably the most controversial. Superman had depowered and incapacitated Zod and the Phantom Zone Criminals, but they vowed to return, re-powered, and to lay waste to Earth--something that had already done in the "Pocket Universe" they came from, which was a wasteland. Superman, understanding that he couldn't hope to defeat all of them if they were re-powered and he had lost the element of surprise, turned green Kryptonite on them and killed them.
Some fans went ballistic, saying that Superman should have found another way. Others understood that the goal of the story was to put him in an impossible situation and then to follow it up with a tale about how Superman would respond to having had to kill someone. That tale--Superman's Exile in Space--was generally well-received and so some fans forgave the trespass because they understood the bigger picture.
It also helped that, as in Man of Steel, he felt immense guilt and pain over the decision. Even critics of both this story and the film concede that his reactions help to temper the damage done.
One imagines that Mark Waid didn't--he tweeted about Man of Steel that "he had no choice" wasn't an excuse. Superman is, after all, a fictional character and a writer PUT him in the position where he had no choice. Waid claimed that the writer should never have done that.
Whether or not Waid has a point, I put the circumstances to a law student friend, who told me that, from a legal perspective, Superman was a murderer in this instance.
Asked whether he could be tried criminally for the actions, my friend answered, "Well yes--because of immediacy. You can't legally use self defense unless there is an immediate and reasonably obvious lethal threat against yourself or a very close relative right there (Different states have different variations of minute details but this is the basic idea)."
Since in the post-Crisis era, Superman spent much of his time as a deputized agent of the Mayor's Office in Metropolis (and so, not pursued by the police like we so often see Batman being), I asked whether it would be a mitigating factor if the offender was an agent of the state.
"In some cases it could be worse if he's a state agent because he would be seen to be abusing his power," she said, adding, "It becomes weird because the immediacy requirement is very strict. For example if a mob boss whom u know is very very dangerous calls u on the pone and says 'in one hour I will come to your house and kill your loved ones' you STILL can't go kill the boss and claim self defense."
Self-defense, eh? Well, that probably covers these next two...
Back before Superman knew that Doomsday "respawns" harder to kill each time, Superman and the beast fought to the death in the streets of Metropolis.
During that battle, as noted, Superman's commitment to saving innocent lives cost him dearly, as it time and time again gave Doomsday a tactical advantage.
The creature could simply down a helicopter or throw a car when it needed a moment's respite from Superman's punches.
Was that a bad call? Should he have let people die? Obviously not...
We touched on him above, but it's worth noting that Superman did fully intend to kill Hank Henshaw in Superman #82. Whether he believed it would work or not isn't totally clear, as when Henshaw promises "I'll be back!" Superman tells him, "If so, I'll be waiting."
Henshaw is a dangerously damaged individual but at his core is a human being whose mind was shattered by loss. So what makes him okay to kill?
Well, he's essentially just a backup copy of himself. The "real" Henshaw died when his body did, but his consciousness was uploaded into computers and preserved. This is no more Hank Henshaw's death than it would be Jor-El's death if somebody turned off the Russell Crowe Generator.
This one's an interesting one in that it's actually written by Mark Waid, a main proponent of the "Superman doesn't kill" movement and principal critic of Man of Steel's controversial finale.
In Kingdom Come's big finale, Superman is left with no good choices.
(How dare a writer put him in that position, right?)
He knows that the war between humans and superhumans is here. There's no stopping it, and somebody is going to suffer massive casualties. This is, arguably, not dissimilar to what happens in Man of Steel and, like in the movie, Superman is torn between the world he was born into and the one he has adopted. Feeling that years of exile have left him too detached to properly make the decision, he allows the choice to fall to Captain Marvel, who is both human and superhuman, depending on whether he's said his magic word.
Captain Marvel elects to split the difference, detonating a giant nuclear bomb that was about to wipe out the metahuman population high in the air, far enough away that the most powerful of the superhumans and those they were able to quickly save would be allowed to live--but they would be a more manageable threat to humanity if they didn't learn their lesson.
Of course, Superman saw what Billy was about to do, and allowed him to do it. Arguably, the people killed in that scene were killed on Superman's watch, and he let it happen--which is part of what drives his rage after the fact.
It's also eerily similar to scenes that you see often with alien invasion stories, including the one in Man of Steel. The "singularity" that was created to destroy the Black Zero and defeat the Kryptonians? That...didn't seem like a "hey, we're in the Phantom Zone now" kinda thing. More like a "our ships and stuff just got sucked into a black hole." So...those people, and Emil Hamilton and others, are dead now, right?
That happens everytime there's a scene like that, and it's often chalked up to "the cost of war," but when it's Superman who puts the plan in motion and it's Superman who could theoretically then be there to save folks...well, it's problematic. He may not have killed those people--either in Kingdom Come or in Man of Steel--but he certainly allowed them to die.