Correct, it's not always possible to find a different situation, but if the situation makes you act badly then you need to accept that you're just not a good person. You're a situationally good person which makes you not actually a good person. If your morals are set aside because your livelihood is at risk, then they aren't actually your morals are they? Truly good people accept the consequences of their morals and don't change them because it's easier.
So yea, we need good systems because quite frankly, most people aren't actually good people, they're only good when things are easy. Moral hazard is a serious problem in any system that needs to be addressed because people respond to incentives and aren't nearly as good as they think they are.
This is why a good social safety net is important for society, it keeps people from being forced into crime because of poverty. People should be able to walk away from bad situations and fall back on the safety net rather than being forced by the situation to be bad.
In my opinion, good people are people who do good things even when they do not expect it to benefit them to do so. Saintly people are people who do good things even when it will be ruinous to them. Many people are reasonably good people, but only a tiny fraction of people are saintly.
You are free to use different terminology, of course.
That's a very religious sounding notion; I'm an atheist, I'd call your saintly people good people and I'd call your good people simply human if such a differentiation is necessary.
I'm not a Christian, so I'm not using "saintly" in any theological sense, and I was using "good" to distinguish them from people who would only perform actions when they see a benefit to them. In my sense, a lot of people wouldn't interrupt what they're doing to stop at the side of the road and help someone whose car has broken down, figuring that it's not their problem and that someone else would handle it. A good person would stop and help as much as they could within reason. Only truly remarkable people would do things that go way above and beyond the call of duty, like driving the stranger that they had helped to and from work for a couple of weeks while their car was in the shop, driving well out of their way to do so. But I think it's still fair to call the kind of people who stop to help good people.
But like I said, this is mainly a terminology distinction, so I don't have any great problem with your version.
And it's not always possible to just go find a different situation.