Now that we have SuperUser, the "not programming related" reason is no longer a valid reason to close a question - questions that are not programming related but are computer related should be moved instead. But because the option remains, people seem to feel justified in closing questions without moving them anyway sometimes.
As such, I suggest changing "not programming related" to "not computer related" - this will help reinforce the fact that questions not related to programming, but which are computer related, do have somewhere to go now. Alternately, "not programming related" should bring up a confirmation to suggest moving to superuser, serverfault, or meta if the question is appropriate for one of those.
Edit: If questions don't deserve to be migrated, they should be closed, sure - but not with "not programming related". Just thing: how do we close bad questions that are programming related? Use one of the other close reasons available, or edit the question to be better. And certainly leave a comment.
At the very least, if you use another close reason, the questioner might get a better idea of why their question was bad. If you just say "not programming related", they might never find out where their question should go, and might never know why their question was unacceptable.
Finally, from a philosophical perspective, anything computer related is theoretically on-topic somewhere in the SO family. Whether it's a good question is completely orthogonal to this - but since it's on topic, closing it for 'off topic' is false. Think: If the question was submitted to SU in the first place would you close it? If so, use that close reason.