Like many, I have been struggling with the same decisions that Microsoft makes and tried various suggested solutions.
For Excel 2007 the following goes:
Putting all values in double quotes does NOT help
Putting an = before all values after putting them in double quutes DOES help, BUT makes the csv file
useless for most other applications
Putting parentheses around the double quotes around all values is
rubbish
Putting a space before all values before putting double quotes around
them DOES prevent conversions to dates, but DOES NOT prevent trimming
of leading or trailing zeroes.
Putting a single quote in front of a value only works when entering
data within Excel.
However:
Putting a tab before all values before putting double quotes around them DOES prevent conversions to dates AND DOES prevent trimming of leading or trailing zeroes and the sheet does not even show nasty warning markers in the upper left corner of each cell.
E.g.:
"<tab character><some value>","<tab character><some other value>"
Note that the tab character has to be within the double quotes.
Edit: it turns out that the double quotes are not even necessary.
Double clicking the csv file can open the file as a spreadsheet in Excel showing all values that are treated as just above, like text data.
Make sure to set Excel to use the '.' as the decimal point and not the ',' or every line of the csv file will end up as one text in the first cell of each row.
Apparently Microsoft thinks that CSV means "Not the decimal point" Separated Value.