In my experience it is unusual for smaller items (less than 75cm/2.5ft square) to take more than 10 days to be delivered between countries with good infrastructure these days. I've found most EU <> US/CAN packages transit in under 6 working days (8 days if ita spanning a weekend). Typically you'll be nearer the 3 to 4 day mark. If I'm sending stuff from work (via FedEx) I infrequently get insane delivery speeds* and that's on their 'normal' service tiers (i.e. not 'next day' or other premium options) - but that might be due to some commercial relationship I don't know about.
If its going via a ship, it's likely a big or heavy consignment. I don't know about the couriers involved or if you live in some rarely visited or hard to access part of Canada (as opposed to, say, one of the larger cities such as Toronto or Calgary), but 30 days seems to me to be an exceptionally long time. Then again, I don't live in Canada! Still, I'd of thought that you experienced more a fluke delay or were at the mercy of a particularly bad courier.
I'm reminded of this picture: http://smarterotti.com/image.axd?picture=FedEx-Shipping-FAIL.jpg
* - I think the record I've seen is 13 hours 40 mins door-to-door from Southampton to up-state NY.
NB: a case of ~150 diapers should fit within what I'm calling a 'smaller item' above.