As far as I know, it is impossible to control how dates are displayed in Excel when using CSV (it can only be controlled using Excel custom settings). We had a similar problem (with phone numbers), and the only workaround that works reliably is to use the Excel format. We use the Apache POI to write .xls files [*] where we can set the cell type to text.
At least for phone numbers, this is necessary - otherwise Excel drops the leading 0s and treats them as numbers (which makes it impossible to distinguish between national and international phone numbers). However, for dates, it might be worth considering if it's better to just let the user decide how the dates are displayed?
[*] CSV , Excel.