Scripting zones seem to ignore their edges on the Y axis completely. Anything that falls within their X and Z axis is considered inside the scripting zone, even if they are actually above or below the scripting zone.
Interestingly enough, it uses the scripting zone's Y axis, not the global Y axis. When you rotate a scripting zone on it's X axis by 90 degrees, the zone no longer includes objects above or below the zone, but does include objects in front of or behind the zone.