I've left jobs for several reasons, typically because things were running smoothly and they didn't need me anymore, or I was getting bored of not being challenged. But there have been times when I walked away not because I wanted to, but because I had to. And those are the difficult decisions to make. Because things are not always black and white, but sometimes a shade of grey. And sometimes because there is a matter of my own ethics to consider.
One simple example where is wasn't really grey is a company where the way they were operating was actually in violation of the law. Not really "on the edge", but blatantly not doing what was required by law to protect customer information. The legal department and I had both pointed this out to the executive team, but their attitude was "we'll worry about it when we get caught", and that's not something I am comfortable with. Whether or not I could be held liable for knowing about this and not acting on it wasn't the issue: it was simply that I didn't agree with the decisions the executive board was making, knowing they were in direct contravention of the law, and was not comfortable being part of that. So I quit. With a clear conscience.
Those are the easy decisions for me, even though it might mean walking away from a lot of money, benefits, or great work environment. The law is what it is, and I won't knowingly circumvent it for corporate greed or expediency. But then there are areas where the activity is not illegal but unethical, and those are harder to decide.
To give an example that happened at two different companies, with slightly different circumstances, one or more of the very senior executives of the company behaved in ways I thought not acceptable. Without going into details, in one case the executives got drunk, behaved totally inappropriately towards their underlings, and then denied everything had happened when they were called out a few days later. A big cover-up, followed by rotating denials, then blame transference started that lasted two months. The rest of the company knew the details from the office scuttlebutt, and the executives became a running joke in the company. In the other case, an executive got overly intoxicated and made statements to the staff that were very questionable, objectionable, and downright obnoxious in some cases. When called on this the next day, the executive responded by firing those who had complained! In cases like these, I find myself having to balance a whole bunch of conflicting emotions. Sure, we all make mistakes and can get drunk and do silly things (although as a member of the executive of the company they should never do this!). Sure, apologizing and admitting can help get over that issue, but denials and blame transference makes it worse. And sure, sometimes it's silly and can get laughed at and then forgotten, but sometimes it borders on harassment or other issues. In each of those cases each member of the executive has to decide whether the actions were enough to cause them to leave the company or stay, knowing that staying essentially condones the activity.
For me, the ethics always win out. If someone above me does something I have a major issue with, it is up to me to let them know I object and why, and see if they will make amends or at least try to mitigate the damage. Refusal to do so (the "I'm the boss and I can do anything I want" attitude) just pushed me away.
Sometimes it hurts to leave a company where you really enjoy working. But I have a responsibility not just to my team, but also to myself. Can I condone activity I think abhorrent? If not, I need to voice my concerns and leave. I can look myself in the mirror each morning that way.