As far as I know, a 301 redirect passes pagerank to the final destination, therefore if you get too many bad links it will affect your main domain rankings.
I would suggest you to create javascript tags that your affiliates can use to display banners, and links to your site and adding the nofollow attribute to those links created by the js.
There's a Matt Cutts video where he explains how 301 redirects work:
