I make money in Sterling, but spend Euros. The best way I've found is to open up an account in the target currency (mine is a Cater Allen UK based Euro account. I'm not sure if they do Canadian Dollars, but the bank doesn't matter, it can be Canadian for example), and then transfer with TTT Moneycorp. You can transfer the money online via their "Global Payments System" platform — transfer sterling into your account, make the currency exchange when you want, transfer it out in the target currency. They screw you to the tune of 1.5%, but like I said, it's best I've found.
If you find any better way, I'd be keen to find out as well!!!
EDIT: My wife also has a Post Office credit card, which doesn't charge a commission. But don't think you can withdraw cash. However my dad lives on the west coast of the states, and he says he hasn't seen a dollar bill for a long time — it's all plastic transactions. Maybe Canada is similar, unless you're going out to the boonies…