Kim,
The way I have it working is I look for the field then set AllowNull to false and then write in a Null value which forces the field into an invalid state causing ArcGIS Mobile to make it mandatory
if (dc.ColumnName.Equals("MATERIAL"))
{
dc.AllowDBNull = false;
fdr[dc.ColumnName] = System.DBNull.Value;
}
As for the workflows, I base it on the project name (for my current work), so depending on the project name different combinations of fields are set to mandatory. If you using a different "value" to base you workflows on then I can certainly help you out.
Kieren