A lot of programs released for the Commodore 64 contained different software for the PAL or NTSC computer. Why did they have different versions of the hardware? Did the software have to be different too?
Hardware-wise, the Commodore 64, like most early computers, was synchronized to its graphics output: in the case of the C64, the CPU clock was derived from the timing crystal in the video hardware.
From a game-programming standpoint, the most important timing element is the vertical refresh rate: the 50 Hz (PAL) or 60 Hz (NTSC) rate at which the screen started drawing each frame. A game coded for one frame rate would appear too fast or too slow on the other. Given the limited CPU capabilities of the hardware (you've only got 19,700 or 17,050 CPU cycles per frame), a re-write of the software was often the only way to adapt while still being able to run fast enough.
The C64 additionally had the ability to change the settings of the VIC-II graphics chip from code. Normally this would be done during the vertical-blanking interval, when no signal was being output to the screen, but making the changes during the drawing interval permitted graphical effects (eg. number of colors) beyond the stated specs of the chip -- but this required cycle-perfect timing of the changes, and this timing was different for PAL and NTSC.
In addition to what has been mentioned in the other answers, the correspondence between pitch registers and actual sound frequency is not the same for both models.
So when writing a sound engine, a different frequency lookup table has to be used for NTSC and PAL C64s. Failure to do so will result in music being transposed among models.
This also means the extreme lowest and highest pitches available are not the same, so some extreme musical pitches might be available on only one model but not the other.