Also, the ICAO code is used in Canada to identify the airport geographic center, whereas the IATA code is used to identify the position of the primary navaid. Where an airport has 2 navaids such as an NDB and a ILS/VOR the NDB will get a new ident generally consisting of 2 letters or a number and a letter (ie. Edmonton muni CYXD = Geographic center of aerodrome, YXD = Position of ILS, XD = Postion of VOR)
There are also many airports within Canada that are not recognized by IATA/ICAO and have idents such as FB6 = Josephburg, AB, NC3 = Brampton, ON.
With regards to the "Z", from what I have been told is that they are internationally recognized under the UN Convention (ICAO) but not an IATA recognized aerodrome.