+1  A: 

It isn't bad practice. I appreciate when sites do this -- and I like it if they include a link for me to get to the real site if I want.

I found this list in google -- there are other hits if you search for them

http://www.zytrax.com/tech/web/mobile_ids.html

Lou Franco
It isnt bad practice if the site allows to view the normal version too explicitly requested. One real-world example if this is that some websites see nokia in user-agent and they forward you to their "mobile" site but totally ignore the fact that nokia N8XX series has full blown browser. Or in similar matter, some wap sites doesnt allow their "content to be seen" because useragent is not know to them.
rasjani
My iPhone browser is awesome, but on sites that give me a mobile version, it's even better. GMail is a simple example. The screen is smaller and it's harder to click things -- I appreciate a custom UI. But, since the UI is sometimes limited, it's nice to get the real site if I want it.
Lou Franco
+3  A: 
  1. How do I determine a mobile browser

Here's some javascript that will do the job: http://www.quirksmode.org/js/detect.html

  1. Is it bad practice to have the mobile site on a different domain or subdomain?

It's good practice, and a popular convention is to use http://m.yoursite.com for mobile if your main url is http://yoursite.com

Noah

Noah
It´s difficult use js to determinate mobile browsers, because most them don´t support js. I recomend you use WURFL.http://wurfl.sourceforge.net/
fravelgue
+1  A: 

There are a number of solutions for determining mobile browsers. Most use the UserAgent making the request but some solutions use other factors as well.

Try looking at:

WURFL

MDBF

DeviceAtlas

DetectRight

Volantis

MobileAware

Movila

UAProf

Matt Lacey
A: 

Use http://51degrees.codeplex.com/. It is an ASP.NET open source module which detects mobile devices and provides auto redirection to mobile optimized pages when request is coming from mobile device. It makes use of WURFL mobile device database. For redirection there is no need to modify existing ASP.NET web application pages.

Amit Patel