Richard Lynch played a bad guy in a 2 parter STNG episode. Another one is Anthony James, from his first appearance as the murderer in "In the Heat of the Night" to the Assassin who sings along with Priscilla Presley in the shower in one of the Naked gun Movies, this guy has always been a go-to Villain. Michael Ironside also.
Lynch and James to my Recollection played good guys only once in each of their careers. Lynch (Also the bad guy Chuck Norris kicks the snot out of in Invasion USA), Played an Immortal in the Highlander TV Series, who started as a baddie, but turned good, when during Vietnam, a group of Children were killed due to his actions.
Anthony James played Garrick, an alien who could walk through walls etc. during a 2 parter of Buck Rogers. He turned against the bad guys and helped stop an antimatter reactor from detonating on Earth.
Michael Ironside has played a few good guys, but is usually The Heavy.
Let us not forget the late Brion James, usually a villain, but occasionally a good guy like in Steel Dawn, and The 5th Element, one of his last movies.