> Refusing to take part doesn't absolve you of anything, according to your philosophy
I think in this context it's fair to interpret a refusal to work on something you deem evil not as inaction but as an act that makes it difficult for evil to prevail. If most good men did this they either would not find persons to complete the work or only be able to find persons who cannot do it well or do it completely.
To further clarify, what I am really saying is one's decisions at work which are detached from any ethical considerations is a problem, they're not just engineering problems -- they affect people, in good ways or bad. I hope everyone would make an earnest effort to determine the morality of tools, laws, policies, etc. they're in charge of creating or maintaining by accessing existing literature, discussing the moral considerations of their work with their peers and others, and then decide if they really want to be a part of that. And, as it happens, the chances are that since a lot of this stuff work requires high competency, whenever you find yourself in a situation where determining the morality of your work is exceedingly difficult, there is good chance you can easily find good work elsewhere that will give you the right engineering challenges without the difficult ethical questions.