If your spam filter picks up a message that is not spam, sometimes it will say why, if it doesnt, ask the company that provides the service, ie. Yahoo in this case.
I have a hotmail account and the spam folder only catches a small percentage of the SPAM that i get, yet, the other day it blocked an email from a friend of mine (first time he emailed me there), so, why can't it block the viagra ads, but it can block my friend's email, not sure, but even when you buy from the biggest online outlets now, their thank you message always says "Add
xyz@abc.com to your spam white list", seems to me that everyone is having this issue, not just you.