+1  A: 

Yes there is. Here's a Javascript example:

function ValidateDateRange(cond)
{
    var p = DES_GetById(cond.IDToEval).value; // Get the value of the control you're evaluating
    if (p == undefined || p.length == 0) return 1;

    // Perform custom validation here
    // return 1 if valid, or return 0 if invalid
}

And you have to specify CustomEvalFunctionName="ValidateDateRange" in order for this to work.

I believe the CustomEvalFunctionName is supported in all of the different Peter Blum Validation controls.

Steve Wortham