Not all Canadian airports... ZBB (CZBB) is one of the 10 busiest airports (in terms of movements) in Canada. Add CXH as another Vancouver airport with regularly scheduled flights without a Y. (and both of those aerodromes are large enough to have a control tower).
Note that some US airports start with a Y. YKM = YaKiMa, Washington
Some of the codes sometimes make more sense if you know the local area well. Example YCD = Nanaimo, but if you knew it was in CassiDy, south of town it makes more sense.
A quick google search should uncover more history, but at least to translate an IATA code (travel agent code) to a aviation code in north america you just add a C for Canada or K for the USA.
http://www.skygod.com/asstd/abc.html has a lot more details on the subject