Is McCain a natural born citizen, even though he was born in the U.S. Canal Zone? Yes.
As the New York Times notes:
Mr. McCain’s citizenship was established by statutes covering the offspring of Americans abroad and laws specific to the Canal Zone as Congress realized that Americans would be living and working in the area for extended periods.
Until the 14th Amendment was adopted after the Civil War (and long after the current United States Constitution was adopted in 1789) citizenship was a solely creature of statute, and the legacy of the statute under which he claimed citizenship at the time of his birth has a long history.
The "First Congress in 1790 passed a measure that did define children of citizens “born beyond the sea, or out of the limits of the United States to be natural born.” The phrase "natural born" was later removed from the statute, but the citizenship from birth of children of citizens has never waivered.
Universal birth right citizenship based solely upon location of birth is largely an American innovation that has not been widely adopted. Almost all European nations and Japan primarily base citizenship upon parental citizenship, and many Republicans, like Tom Tancredo, would like to abrogate the 14th Amendment and return to that standard. But, citizenship based upon location of birth has never been the sole basis of citizenship.
The "natural born" phrase in the constitution prohibits people who are naturalized citizens, like "the current governors of California and Michigan, Arnold Schwarzenegger and Jennifer M. Granholm" from becoming President. I suspect that most Americans would agree that the "natural born" requirement is unnecessary and potentially removes highly qualified people from seeking the Presidency, but that is another debate.
If you are a citizen when you are born, it is hard to see how the natural born requirement should disqualify you from the Presidency. Citizenship itself isn't "natural." It is a legal construct. But, a law that says that you have the citizenship of your parents and of people born in a U.S. territory is no less natural than a law that says that people born in a U.S. state are U.S. citizens.