BMW also charges for the letter - $500, although there may now be a work around to get out of it.
From what I hear, if you want BMW Canada to honour your US warranty, you'll also have to have the instrument cluster changed over to a Canadian one, have the nav system reprogrammed to display kms instead of miles, and something to do with the HVAC must be changed out as well. Total cost is $3,000-5,000.
There is absolutely no Canadian law that says this must be done to make the vehicle legal (even the US speedo has markings for kms), it's purely at the whim of BMW Canada. You can choose not to have it done and still drive and register the car legally, you just kiss any Canadian warranty service goodbye.
There are a couple of lawsuits going on over this, but I'd be surprised if they get anywhere.