I can't emphasise enough how important (c) is. Personally, I find programming to be emotionally challenging in that you have to put emotion, and your own thoughts aside when cutting your code. Add in to the mix the social dynamic of the workplace and the emotional workload doubles.
I always had a feeling this was important. I remember reading about NEDs (New Economy Depression syndrome) and identifying with that, but it wasn't until I went and did a diploma in psychology that the rationality behind it all crystalised.
Across all fields that study wellbeing it's fairly conclusive that social support is one of the most powerful mediating factors. In summary the more friends you have the happier and healthier you will be.
How does this relate to "non technical people"? As a friend once said to me once, when I was going through a particularly kafkaesque work episode, "you need to get outside of your head". You need to engage with people on a plane other than the one you work upon every day - to give those parts of your brain a rest and to help you to develop others.
People are hard though. In many ways more difficult than computers but the key thing to remember is that unlike with computers there isn't a right or wrong thing to do at all times. People have empathy, they can be sympathetic, they can meet you half way and they can help you to figure out what you're thinking.
Start off with something small, where you don't have to have too many interactions, but where you can be around people. I don't know why but for some reason communal drumming classes comes to mind. The key is to be around people where they will get to know your face and you theirs.