I'm picking up the discussion from your thread in the SQL Forum.
If you use the OPENQUERY function, the query you enter as a string argument will be passed verbatim to the target server for execution. In that case, your Oracle specific TO_DATE() syntax will be executed in the Oracle environment and should produce the results that you expect.
If you do not use OPENQUERY, and compose the query using the linked server in a four-part-name, then that query will be parsed and an execution plan will be forumlated by OLE-DB (think of it as SQL Server for most purposes, although it is a great deal more complex if you want to get into the details). The query plan will be built locally (on the machine running SQL Server), and some variant of your query will be passed to the remote machine for execution. This implies that SQL Server needs to be able to parse your query when you do it this way. It also implies that you'll get a query plan based on a "bigger picture" than what you'd get via OPENQUERY, which is usually (but not always) a better plan.