la differenza tra i due e' nella lunghezza dell'hash.
A partire da mysql 4.1 la funzione password() usata da mysql per hashare la password dello user nella tabella mysql.user, passa da 16 digit a 40 digit.
Ovviamente il CLIENT mysql installato su php 4.x in versione 3.x non lo sa e continua ad inviare la password a 16 digit, in realta' il meccanismo e' piu' complesso ma non rientra nel quesito. Con old_password() mysql riutilizza il vecchio algoritmo a 16 digit di hash in modo da avere la password allineata con i valori ricevuti dal client in ver. 3.x (old_client).
Nel caso tu passassi a php 5, sappi che il client MYSQL che vai ad installare sul php (dovrai installarlo perche' non c'e' piu' installato di default come nella versione php4), sara' invece in versione adeguata al tipo di server mysql a cui ti andrai a connettere, ergo non ci sara' piu' bisogno di usare old_password().