I do not necessarily think what I am proposing is the best solution in many cases, however it may prove an alternative insight into your problem area.
Instead of a detecting a mobile browser per se, which has some similarities / disadvantages to browser sniffing.
Instead take the approach of responsive design. I won't go into detail of responsive design here, as it's taking us off track. However what it could provide you with is an approach which instead of customising the entire experience based upon what browser is detected, it's a subtler method of customising the experience based upon screen resolutions, css capabilities, JavaScript being enabled etc etc.
Responsive design isn't a technology per-say, but a set of techniques that enable the experience to be progressively enhanced depending on the browser (mobile browser) being used.
What a responsive technique doesn't really allow for (or at least it is compromised) is very dramatic differences between e.g. mobile version / desktop version. As each would typically pollute the separate experience e.g. html could be hidden on a mobile version, but might be still downloaded in the background... but these techniques are developing e.g. JavaScript can be used to download a low resolution image on a mobile browser and a high resolution on a wide screen monitor.
But you could always put a link to a completely separate mobile version / desktop version of site to allow the user to decide as a fall-back.
you can get the `.NET handset detection API kit` by visiting following link:
http://code.google.com/p/handset-detection-asp-net-api-kit/
– Nitin Sawant Apr 17 '12 at 10:03