Part of the problem is that the CSV file doesn't save formatting, just the data. So, when Excel encounters 000123, it will be converted to the value 123. You need to force Excel to import that column as text somehow.
How are you opening the file to make adjustments?
I tried the following code on two copies of the same file, with two different extensions. The third column was populated with numbers that had leading zeroes. With the file named with a ".txt" extension, it worked. But with the file with the ".csv" extension, the data was imported as numbers, disregarding my definition. It seems the .CSV extension somehow tells Excel to assume certain things about the file that you don't want it to.
Workbooks.OpenText Filename:= _
"C:\Documents and Settings\dkuhn\My Documents\CSVTest.txt", Origin:=437, _
StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False, Comma:=True _
, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1), _
Array(3, xlTextFormat)), TrailingMinusNumbers:=True
At this point, my guess would be that the easiest thing to do would be to save your CSV file with a ".TXT" extension (or save it and rename it). That way you can use code similar to mine to open the file, or when you manuallly open it with File->Open... menu, you will be taken to the wizard where you can manually set the column to Text format.
I'm not overly experienced with this sort of thing, so if someone else posts an idea, by all means try theirs first.
Hope this helps,