Girls become stupid when they're around guys. Plain and simple. Ever notice when you're looking at someone else's relationship and they complain to you and you offer solutions but they keep rationalizing all the bad things in their head? When you get into a relationship, your priorities and way of interpreting everything gets skewed. Even if it's SO obvious to everyone else outside of the relationship what exactly is wrong.
Having said that, I concur with Som. Even though ideally, it would be "chicks before dicks" when it comes to girl friends, the likelihood is that your friend is going to resent you like hell if you tell her this, ESPECIALLY after they've been dating so long and she's probably getting serious with this guy. I'm assuming she didn't consult you before they started dating, and that alone implies that she's comfortable with her gut instinct and doesn't care what anyone thinks - as right or wrong as that is.
So like Som said, I say leave her be and wait for the guy to dump her - then console her when it's over. And DON'T say "I told you so.", no matter how tempting it is. I know you'll hate this, but it's good because: 1) your friend won't resent you. 2) If this guy has not totally outed himself, or even come to terms with his sexuality, you'll be ruining both of their lives.
I get that you don't want to hurt your friend, but she'll hurt whether she finds out from you or finds out from the bf.
Just my 2c!
Okay I'm off to make an important phone call!
"It's not always about you!!!" (But if you think I'm referring to you anyway, then I probably am.)
"Good luck returning my ass!" - Wilhemina Slater
"This is my breakfast, lunch and f***ing dinner right here. I'm not even f***in' joking." - Colin Farrell