ok i figured it out... Jeff - Thanks for your help.looks like my problem was with the casting of the input featureclass/displaytable. It has nothing to do with the IFieldChecker interface.so if anyone is interested here's the corrected code to export selected features of a sde featureclass with joined fields to a shapefile
/// <summary>
/// Exports the selected features of a layer in the Map Control to a Shapefile
/// </summary>
/// <param name="pLayer">mapcontrol layer</param>
/// <param name="inputPath">input IDisplayTable</param>
/// <param name="outputPath">output shapefile full path</param>
public void ExportJoinLyrToShapefile(IDisplayTable pInDispTable, string inputName, string outputPath)
{
IFeatureClass inputFeatureClass = (IFeatureClass)pInDispTable.DisplayTable;
IDataset inputDataset = (IDataset)inputFeatureClass;
IDatasetName inputDatasetName = (IDatasetName)inputDataset.FullName;
// Get the layer's selection set (the selected/highlighted features of the layer in the mapcontrol)
IFeatureSelection featureSelection = (IFeatureSelection)pInDispTable;
ISelectionSet selectionSet = featureSelection.SelectionSet;
// Create a feature class name for the output shapefile and open the output's workspace
IWorkspaceFactory shpWorkspaceFactory = new ShapefileWorkspaceFactoryClass();
IWorkspace shpWorkspace = shpWorkspaceFactory.OpenFromFile(outputPath, 0);
IDataset shpWorkspaceDataset = (IDataset)shpWorkspace;
IWorkspaceName workspaceName = (IWorkspaceName)shpWorkspaceDataset.FullName;
IFeatureClassName shpFeatureClassName = new FeatureClassNameClass();
IDatasetName shpDatasetName = (IDatasetName)shpFeatureClassName;
shpDatasetName.WorkspaceName = workspaceName;
shpDatasetName.Name = "Shapefile_Name";
// Use the IFieldChecker interface to make sure all of the field names are valid for the output shapefile.
IFieldChecker fieldChecker = new FieldCheckerClass();
IFields shapefileFields = null;
IEnumFieldError enumFieldError = null;
fieldChecker.InputWorkspace = inputDataset.Workspace;
fieldChecker.ValidateWorkspace = shpWorkspace;
fieldChecker.Validate(inputFeatureClass.Fields, out enumFieldError, out shapefileFields);
// We also need to retrieve the GeometryDef from the input feature class.
int shapeFieldPosition = inputFeatureClass.FindField(inputFeatureClass.ShapeFieldName);
IFields inputFields = inputFeatureClass.Fields;
IField shapeField = inputFields.get_Field(shapeFieldPosition);
IGeometryDef geometryDef = shapeField.GeometryDef;
// Now we create a feature data converter to "Export" the selected features to a shapefile
IFeatureDataConverter2 featureDataConverter2 = new FeatureDataConverterClass();
IEnumInvalidObject enumInvalidObject = featureDataConverter2.ConvertFeatureClass(inputDatasetName, null, selectionSet,
null, shpFeatureClassName, geometryDef, shapefileFields, "", 1000, 0);
}