In my opinion (take that for what it's worth!) this seems like it would work with a normal join, but you would lose referential integrity.
I think you could also have vendors and contractors in one table. Unless you can think of a very specific reason why they would need to be in separate tables. It seems like to me that you are collecting common data on them already, so they could easily be one table called tblOrganizations or something similar.
Code:
Org_ID Org_Name Org_Type webAddr preferredStatus
--------------------------------------------------------------
1 Acme Vendor acme.com Yes
2 Brawndo Contractor No