Create a new field type that auto populates date/time and/or user.
New type of field that is perhaps connected to or monitors another field like a fixed select list. When one of the selections are made it records the date and modifying user. Each selection can record in a different field. For example when the "Status Field" is set to "approved" it can auto populate the date on a field labeled "Approved Date." There are other ways of doing this but if it was a built in function to a new field type it would perhaps cut down on the amount of fields needed and workflow settings.