KnitPicks does ship to Canada, but it’s over $8 for shipping, plus they charge 10% extra to your amount for “duty”. It can add up. I ordered from them before, but I got well over $100 in yarn, so paying the shipping wasn’t too bad. I’ve ordered from them two other times, but had the yarn sent to friends in the States before going to visit them.
Webs ships to Canada, but I’m not sure how they charge the duty. Googling for Canadian yarn shops is the best bet, or just sucking up the difference in cost, if you want really nice, fancy stuff.
Beehive Woolshop in Victoria will ship to you, and they have an excellent selection. I’m not sure about their shipping costs though.