On systems where SQL Server is set to a 'mdy' language (the default) but the local machine is set to a locale where default date format is 'd/MM/yyyy' (ie: en-gb, en-au etc.), transactional replication snapshots generate invalid where clauses for "date" type columns.
This causes replication to fail with "Query for data failed" and error 241 (Conversion failed when converting date and/or time from character string.)
The bug appears to be in:
Which relies on .NET ToString() to generate text values for the where clause.