Not so unorthodox, I would do pretty much the same thing.
Start by adding the generic vendor record, or specific vendor records to your table. If you can't look up or get specific vendor information use a key of something like -1 as your generic vendor, other than that just run something to populate your table with vendors as you would employees. I also typically have an ID = 0 in every dimension for Unknown. You might need some way to map your vendors to the assigned employee id.
In SSIS, the answer depends on if you are using a generic record for vendors, or specific records.
-For a generic record set your lookup not to fail
-Create a derived column that evaluates the looked up employee id value and gives it a value if it is null or blank. For example ISNULL(LkpEmployeeID)?-1:LkpEmployeeID For your generic vendor this will return a -1 or the actual employee value. Then use this derived column value to load your fact table.
-For a specific set of vendors where you have the ability to look them up.
-Set your employee look up to route no match records to another data stream.
-Look up your vendor information appropriately and grab the employee ID
-Use a Union to bring your data streams back together with the employee and vendor values feeding into the same output column.
-Map to your fact table normally