I had the same issues when dealing with drop shippers. There is an add-on for oscommerce called Multi-Vendor shipping. It will allow you to setup several different types of shipping options and apply them per product. If you want to install that, you can find it here: http://addons.oscommerce.com/info/4129 If you need help installing it, let me know and I'll give you a quote.
Or, if you wanted, you could do a shipping rate based on weight. It may cause the flat rate items to be a bit off, but you could make up for any price difference on that through the product's price. That way, you wouldn't end up losing out on the really heavy items.
You could also setup a table rate based on either weight or price. You could add the flat rate shipping into a product's price and set that to have a 0 weight and give the item free shipping and then have different prices based on higher weights for the other products.