For the Excel CSV work around, its like this:
[... CSV data ...],"more data",+"00123","data"
Insert a plus before the quoted field but after the comma. Excel will then properly handle the leading 0's. Its retarded but it works. The problem with this is the plus is not a part of the CSV format and I would expect it to break just about every other application that can import CSVs. So I used to have programs that generated a report in HTML, XLS (really a CSV with plusses added), and a proper CSV file. Although now days, I've dropped the CSV with plusses for just a plain HTML table.