I only host low stakes friendly games. My group has set a precendent of "selling" their cards. If someone wants to see cards (villain or otherwise) the player negotiates a price. Sometimes it's $0.50, sometimes it is $5, all depending on the person who wants to see the cards and the size of the bet or pot.
Sometimes two players both agree to show for free.
Sometimes multiple players will chip in to meet the demand of the player (ex: 4 players may each give a quarter to meet the $1 requirement).
This makes it fun and always possible but also not done for free. You can fold and pay a lower price than calling to still see the cards.
Cards shown are always shown to the whole table, regardless of who actually pays money to the player.
This system has resulted in zero problems over the course of the last 5+ years we've been playing together, so I'm happy to continue it.