If you have a statistically sufficient number of survey data points you could use the elevation values in those points to calculate the RSME using the code below. The survey data table would need to have some existing fields including the surveyed elevation, and the interpolated elevations (from the add surface information tool in the 3d analyst toolbox).
Here is the code written for 9.3.
try:
import arcgisscripting, exceptions, math, traceback, sys
gp = arcgisscripting.create(9.3)
gp.OverWriteOutput = 1
gp.toolbox = "management"
TheFeatureClassOfPoints = "Z:\Data\Cadastral\cadastrepoints\Cadastrepoints.gdb\Points\LummiDeltaElevationSurveyControlPoints"
InterpolatedValueField = r"deltaz"
SurveyedValue = r"surveyz"
RMSEField = r"RMSEdelta"
SquaredValues = []
print "Start cursor"
rows = gp.SearchCursor(TheFeatureClassOfPoints)
row = rows.next()
while row:
i = row.GetValue(InterpolatedValueField)
s = row.GetValue(SurveyedValue)
SquaredValues.append(pow((i - s), 2))
row = rows.next()
del row, rows
n = len(SquaredValues)
SumOfSquares = sum(SquaredValues)
x = SumOfSquares/n
rmse = str(pow(x, .5))
print "rmse =", rmse
print "Add field."
gp.AddField_management(TheFeatureClassOfPoints, RMSEField, "DOUBLE")
print "Calculating field."
gp.CalculateField(TheFeatureClassOfPoints, RMSEField, rmse, "VB")
del gp
print "Finished"
Geoprocessing Errors will be caught here
except arcgisscripting.ExecuteError:
print gp.GetMessages(2)
raw_input("ArcGIS Error, press enter to continue")
Other errors will get caught here
except Exception, ErrorDesc:
print ErrorDesc.message
import traceback, sys
# get the traceback object
tb = sys.exc_info()[2]
# tbinfo contains the errors line number and the code
tbinfo = traceback.format_tb(tb)[0]
print tbinfo # provides where the error occurred
print sys.exc_type # provides the type of error
print sys.exc_value # provides the error message
raw_input("Python Error, press enter to continue")