Since there seems to be alot of people having this problem I am posting the answer here so that in all our roamings we can all replay with a solution till Borland fixes this bug in their BDE. The bug occurs and is reproducable by just setting one DefaultExpression on any DataSet. If you do this you will get an Access Violation with IDSQL32.DLL.
Assign a CustomConstraint on the DataSet that you want a DefaultExpression in and this will fix the problem. Make the CustomConstraint global for the entire DataSet and not just for the field(s) you want to set a DefaultExpression to since the local CustomConstraint for the specific field will only fix the DefaultExpression for the field alone and still give you the AV for any other DefaultExpressions. I normally use a CustomConstraint like "FIELD IS NOT NULL" to fix the problem.
Pass this info along to all who have problems.
This ANSWER is free and will remain free here. Someone "Answer" this question so that it will be packed and kept.