There is no formatting. It is returned from a silverlight control as a DateTime value and then passed into a LINQ query as a datetime value. i.e.
var query = from c in config.context.IncidentSet
where c.CreatedOn.Value >= dtfrom
where c.CreatedOn.Value <= dtto
select c;
binding.LoadAsync(query);
It is never touched or formatted at any point along that chain and yet it works on one box and fails on another. I suspect you're right but something else is formatting it and breaking it.