Lot's of ideas (sorry got carried away) ...
How about having an extra "spam warning board" where spammers (and their products are named and shamed) in plain text (ie. no hyperlinks)?
Companies producing software who have affiliates abusing the system could be left there too until they deal with their errant affiliates - it then puts the ball in their court to get off the spamming list by blocking their spamming affiliates and making private contact and explaining what is going on. That way a private conversation could be used to resolve a situation. Any genuine companies will understand the issue and won't want to be identified as a potential spam source.
Finally how about a filter that blocks the posting of product homepage URLs that are listed in the "spam warning board". The filter could pop up a message when someone tries to recommend a product or post a link stating that the URL is banned and why (and therefore the current post needs to be edited before it can be posted). A URL spam list could be generated and updated automatically from the links posted on the 'spam warning' board.
These three steps would make legitimate companies take action against 3rd party spammers, make posting spam links a real nuisance for spammers and would hinder genuine users of the forums.
Actually this whole setup would make a great forum mod for general release.
Alternatively, how about adapting
http://custom.simple...ds/index.php?mod=369 or
http://custom.simple...s/index.php?mod=1095 to apply to newly registered non-donating users (I presume spammers don't donate?). Only allow them to move out of guest status (or whatever you want to call it) when they have been actively posting on the forums for a while (ie. restrict their ability to post active URLs until they have a sufficiently high legitimate post count). It would also have the benefit that users could be demoted until they prove themselves again!
A further idea is to use 'karma' built into the SMF forum. Award everyone some 'karma' when they sign up, allow it to increase microscopically for each legitimate post and set it to zero for spam posts so that they have to build their karma score again to be allowed to post URLs or images. (see
http://custom.simple...s/index.php?mod=1007 ???)
Final idea ... how about making full posting priviledges restricted to donating members - ie. the number of donation credits in an account has to be kept above a limit to be allowed to post URLs or images? It wouldn't have to be a high limit to deter spammers ($2 would do) and wouldn't actually restrict people wanting to use the site beyond having to cut and past a link.