You're likely seeing the issue if the time portion of the DateTime type is 12:00:00. If that value (14 Jan 2007 12:00 AM) gets submitted in EST, then it'll be offset as you move through western timezones (i.e. 13 Jan 2007 11:00 PM in CST)
The best way around this is to make sure you store DateTime data in an invariant type (convert it to UTC pr GMT). Then, when you get to whichever consumer needs the data, they can change the data into the locale-specific representation. If you're not able to control how the data is saved, then just make sure you convert it to an invariant type as you retrieve, before you return it to a client.
The link @Joe referenced is useful, otherwise here's a fairly large whitepaper detailing best practices regarding the issue.
http://msdn.microsoft.com/en-us/library/ms973825.aspx
Here's a stack overflow Q'n'A regarding some of the newer technologies, also.
http://stackoverflow.com/questions/65164/best-practices-for-datetime-serialization-in-net-framework-3-5-sql-server-2008
Note: there's an interesting point in that first link I added about serialization of some of these date types, depending on whether you're still on the 1.1/2.0 stacks. Pay attention to that as it's bitten me a couple times ;-)