Actually, I checked them out today, and their rates were as bad as in Canada. Maybe I'm missing something here, but I changed my USD to CAD at the rate of $1 USD = $1.47 CAD. 4 days later, I try to convert back, and they're quoting me $1 USD = $1.68 CAD. If I do that, it ends up costing me over $20. My bank uses the $1.47 exchange rate, so even with the $17.50 charge, it ends up being cheaper this way.
The whole thing seems so crooked. Is the USD that in demand that you get screwed if you try to trade up for it always? It seems like if you travel, unless you spend all the money you convert, you can't win in the end.