As stated it's not generally possible. In IE you have some chance using a trial and error approach on some software. For example you could test for msxml2.domdocument.6.0. by using:
Code:
var dom;
try
{
dom = new ActiveXObject("msxml2.domdocument.6.0");
alert("DomDocument.6.0 available.");
}
catch(e)
{
alert("DomDocument.6.0 not available.");
}
but you can't actually tell why. It maybe installed but the user has disabled ActiveX. This approach would only be suitable on an intranet where you could guarantee that security settings allowed code like this to run.