Ciao,
per lo stesso motivo ho dovuto modificare alcuni miei programmi al lavoro.
Il problema è che il carattere chr(0) non viene considerato se apri un file in modalità Input. Dovresti aprirlo in modalità Binary (specie se ogni record deve essere a lunghezza fissa) oppure utilizzare lo Scripting.FileSystemObject (io mi trovo bene così, prima di prendere in pasto il file lo pulisco sostituendo chr(0) con chr(20)). Pur trattando file grandi, questa operazione di "pulizia" non porta via troppo tempo.