You could use InstallScript:
if( yourCondition ) then
FeatureSetData (MEDIA, "FeatureName", FEATURE_FIELD_VISIBLE, FALSE, szData);
endif;
This way you can hide the feature. If you want to de-select the feature you could use FEATURE_FIELD_SELECTED
instead of FEATURE_FIELD_VISIBLE
.
You could also do this by going to the Feature tree of your installer, select the feature you want to be greyed out, and add some conditions that change the installlevel; you can find an explanation of the installlevel in the following URL:
http://msdn.microsoft.com/en-us/library/aa369536(v=vs.85).aspx
Hope this helps!