Detecting is fine, but its not flawless, and some people actaully resent being redirected without the option to select thier user experience. I agree with the title of your article.

I don't think that there is an officially accepted best practice. Given that most detection is done with javascript, relying on it and its presence includes risk.

For that reason, I recommend using a lo-fi solution which gives the user the option to select their experience. I think giveing users options is important and I would rather do that than maintain and constantly test my detection logic.

Simply provide links to "Mobile Version" and "Tablet Version" of the web site.

Then take it futher and have unique links for each OS so you would have:
"CHOOSE YOUR MOBILE EXPERIENCE: Android | Apple | Black Berry | Mobile Site

–Android give you an option to download an application for "Smartphone | Tablet"
–Applie gives option for "iPhone | iPad"
—Backberry gives a link to download a reader app
–The Mobile Site would be a version of the site sized for mobile

Something to consider is that all manufacturers provide Official user interface (UI) and user experience (UX) guidelines Many of the guidelines focus on native application development, but we can apply most parts of them to mobile web design too. The key is to try to provide the best possible experience on each platform. Do not deliver an iPhone experience to a BlackBerry user. Every platform has its own UI and usability guidelines that every user is expecting on your app.

I found one site that is following this logic: Wall Street Journal

There are other strategies of course, but this is a lowest common denominator.