Talk to your bank and find out if you can get a multi-currency account that can disburse EFTs/checks, etc. in either U.S. or Canadian dollars, and work with your treasury department to ensure that the functionality is cost-beneficial.
Alternatively, you may be able to purchase Canadian dollars at your bank and have the bank prepare a money order payable to your vendor in the Canadian dollars. The money order could be sent via mail to the vendor, thereby, avoiding the wire transaction costs. However, you would have to check with your bank about the fee to prepare a foreign currency money order to determine if it saves you the time and money versus your current process.
Another possible way without establishing a foreign currency account could be to use the money transfer systems such as Western Union. Some of these money transfer service bureaus offer B2B transfer services that may be lower in cost than your current method. Here are a couple of sites:
These bureaus do have some limitations but could turn out to be an alternative solution if you do not process many foreign currency payments.