if you're not detecting on the client (via javascript), then you have to rely on headers. well, maybe via IE conditional comments + cookie setting on transparent pixel request
the point is you should be doing feature tests, not browser tests.
In an ideal world, perhaps. Sadly, in the real world, a browser seemingly supporting a feature doesn't mean it gets it right, and not all features can be detected by testing.
there's no such thing as a feature test on the server side.
The things that are different are almost exlusively related to client side tech- html, css and js.