Yep, there is field is system but is only in custom modules :(.
So I guess naming convention like prefix i.e. acmeCustomField would work
FYI sql wise there are 2 fields where you can find fields definition:
select convert(xml, ClassFormDefinition),
convert(xml, cast(ClassXmlSchema as varchar(max)))
from cms_class where classname = 'OM.Contact'
but this is xml I would not go there, on top of that in SQL there is much easier way to get the columns:
`SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = (select ClassTableName from cms_class where ClassName = 'Om.Contact')`
With Kentico API it is even more simple
var myColumns = ClassStructureInfo.GetColumns("OM.Contact").Where(c => c.StartsWith("acme")).ToList();
P.S. You might as well dig into
var csi = ClassStructureInfo.GetClassInfo("OM.Contact");
var def = csi.ColumnDefinitions;
but I would say the naming convention is the way to to go.