Where in the package is it actually becoming a date? Check the input and output collections for the source component.
If the actual value in the csv file is an empty string something is finding the string and converting it to a date. If you have to, enter an invalid date into the column and run the package to see which component fails. I would suspect that the conversion is making empty string into 1/1/1753 rather than NULL. There is really no way in a CSV file to distinguish one from the other.
So, if the conversion happens after the source of the data flow, you can add a derived column component and handle the conversion from empty string to NULL yourself. If the conversion is happening in the source component (either the input or the output of the source component is actually a date data type) you may have to actually look for that date with a derived column component and change it to NULL.
Why the difference from DTS? Implicit conversions don't get handled the same way from programming language to programming language so it may simply be a .Net thing.