First, accept the fact that you will constantly be flooded with emails that aren't intended for you and don't get picked up by a spam filter automatically. There is nothing you can do about this, because from a spam filter's perspective, it doesn't look like spam. There is no alternative to manually marking those emails as spam.
Given the fact that you accept this, it is my understanding is that you occasionally run into a situation where you can't mark the email as spam manually, because you also use the site from which the false email is being generated. By marking it as spam, you block legit emails from reaching you.
If you must keep that email address (sounds like its more trouble than its worth), then you can use plus notation and some tricky filtering to fix that case. In emails, anything after a plus (but before the @) is discarded for delivery purposes, but can be used for filtering in email clients like gmail. For example, sending an email to John+nospam@gmail.com will actually be delivered to John@gmail.com. But gmail still konws that the email was delivered to John+nospam@gmail.com, so you can filter on everything after the +.
When signing up for alerts on sites, give them the John+Nospam@gmail address. Then, create a filter in gmail to tell it to never automatically mark emails to that address as spam. In the "to" field, place "John+Nospam@gmail.com". On the next screen, check the "Never send it to spam" field. Then click on the "Create Filter" button.
Now, you can mark whatever you want as spam, without worrying about your emails from getting through (as long as you give out the john+nospam@gmail.com address to those sites that you also use).
I doubt I did a very good job explaining myself, but hopefully it will get you started. A quick search for "plus notation" in google will give you more information on how to use plus notation.