I buy a lot of stuff from the US (and elsewhere).
Due to NAFTA, most stuff is duty-free, so you will generally only have to pay GST/PST/HST (so I pay 13% in Ontario)... but the courier/postal-service is free to charge you other handling fees.
As others have mentioned, your best bet is to *always* use USPS->Canada Post.
- Canada Post will seldom charge you any customs for packages under $100 in value (less than 1 time in 20, in my experience), and will often let stuff < $200 go through... though it's somewhat random; the couriers will almost always charge you.
- Canada Post charges a flat $10 fee (when it actually decides to collect customs); UPS and FedEx charge $30 (more for high-value packages) for "brokerage"; DHL GlobalMail charges $10-12, but it's collected COD, so you can't pay with a credit card, and it's a lot more hassle because the mail-clerk has to remit it as a money-order.
- Plus, Canada Post has convenient retail locations to pick up your packages... the couriers usually make you drive out to some industrial park in the middle of nowhere.
If you absolutely *have* to use UPS, *don't* use the cheapest service ("UPS Standard to Canada")... because brokerage is not included, and you *will* get a $30 charge when it arrives. Much better to pay an extra $10 up front to go to the next tier of service where brokerage is included (you'll still have to pay GST/PST/HST, though).
Any of the services that *pre-charge* taxes/customs (e.g., Amazon.com) are usually OK... you know you won't get dinged on delivery (though you still have to drive out to the industrial park if it's delivered by a courier).
Services like UPS Mail Innovations (where UPS delivers it to the border, then Canada Post handles the actual delivery) are generally OK too... DHL GlobalMail being the exception (see above).
Your best bet for avoiding charges completely is to have it declared as a gift, or with a low value. But that's probably/technically illegal, so I never ask. Some nice retailers do it anyway.