I'm starting this Wiki to collect best practices about creating interoperable web services (not clients) in WCF. Please share your experience if you know any feature which is not generally interoperable or which is not interoperable with specific platform.
Fairly simple:
avoid any .NET specifics like Exceptions (turn them into SOAP faults)
don't use any binding that start with net
like netTcp, netNamedPipes, netMsmq and so forth - use wsHttpBinding
for secure WS-* services, and basicHttpBinding
for maximum reach / compatibility with even the weirdest client platforms
don't use the NetDataContractSerializer