This is another frequently asked question.
If you search google how to detect .Net Framework, this(http://support.microsoft.com/default.aspx?scid=kb;%5BLN%5D;315291) page ranks very high.
Ignore all the details in the KB articles. It basically asks you to check this reg key. [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\policy\v1.0]. If REG_SZ value 3705 exists, then .Net framework v1 is installed.
The same can be applied to detect v1.1. Instead, you check [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\policy\v1.1], and test the existence of REG_SZ value 4322.
But wait, there is another not-so-well known documented way to detech existence of .Net framework v1.1. And it is not even in the first 10 pages of google hits.
It tells you how to detect .Net framework 1.1. And more! It also tells you how to detect the language pack, and J# package!
Should I say this is a failure of google, or Microsoft?:)