I have purchased a lot of fabric and batting from the US (much cheaper) and only rarely been surprised at the door with a charge for customs and duty. This was usually by Fedex, who in addition to paying approx $20 in C&D, Fedex charged me an additional $10 for paying it up front for me!! So they charge $10 for loaning me $20 for a few days. I was not happy and let them know.
The best is when they come in the US flat packages, no extra charges. I always look at how much fabric the vendor says they can put in an envelope, do reduce the per yard shipping cost. I never ask vendors to falsify shipping information.
I also had a bad experience with Hancocks. I purchased 6 bags of batting, paid the invoice by credit card and waited for my package. I had to pay additional fees when it arrived (OK, no problem, that's life), but also saw on hte invoice that Hancock had added $30 more to my invoice. When I called them they said that a box that size costs more....but they did not mention that on their site when I purchased and paid for it. Again, not happy. They have now corrected that when you buy in bulk so that you know you will be charged extra for oversized packages.