There is a function, dbComputeBBoxNoNLP(), that will calculate a cellviews' bounding box excluding any NLP labels that it contains, or its sub-cells. Here is an example of how it might be used:
;; get the seleted instance object id
inst = car(geGetSelectedSet())
;; calculate the bounding box of the instances' master and
;; transform the bounding box (to the current cellview's
;; co-ordinate system) using the instance transform
Now, I don't know if you are working in a layout (I will guess "yes") or a schematic, but there will likely be labels that are not NLP labels if you are working in a layout, so the above may not help too much. If this is the case, then it may be necessary to write something like the dbComputeBBoxNoNLP() function yourself, excluding labels from the calculated bounding box. Let us know - someone may have already written such code that they wouldn't mind sharing.
I hope that the above is at least a good starting point, if not the actual answer that you are looking for.