Content negotiation means that the server in one way or another negotiates with a user agent (browser, search engine, etc) that requests a document. The negotiation means that the user agent announces which media types (also called content type or MIME type) it can handle and, optionally, which one it prefers. The server then serves the document in the way that best suits the user agent.
The user agent announces which media types it can handle through a header in the HTTP request it sends to the server.
The article goes on to explain how to create a switchable and testable media types for your website which responds to the appropriate requests.
Robert’s Talk offers “How To Deliver HTML Instead of XHMTL with WordPress” takes content negotiation and applies it to WordPress, a technique that turns your XHTML document type to HTML.
Serving XHTML with the correct mime type using PHP from Workingwith.me.uk has another method that digs into the switching mime types to control the XHTML/HTML media types.