I'll show in a friendly game, on occasion. Like, if I'm up against CardsChat players and feel sociable I'll show my fun/funny/unusual/monster hands.
In a ring game I pretty much never show. Ring games are always deep stacked (so the environment doesn't change as much) and you bump into the same players, so I just don't want to allow insight into my game.
In tournaments I'll show on occasion, usually really deep or even heads up. It's unlikely that I'll be in the same situation with the same people.
I show for specific reasons.
For example, if I'm heads up and against a really tight player who I can read pretty well, and I see he is weak, I'll shove and then show my K\T or whatever when he folds. Then I'll do it again later with Q\J or whatever.
So either he thinks I'm overvaluing hands and is looking to call me with any Ace, or he at least knows that I'm willing to stick it all in with beatable hands.
I'm basically trying to convince the guy to call me later with his good hand when I have a great hand. I'm trying to convince him to open up his game.