Ultrasonic Rangefinder (SRF05) Expected Results?

A long shot.

Maybe it's because yourdelay is too short ?

Quote from the delayMicroseconds() description in the reference:

This function works very accurately in the range 3 microseconds and up. We cannot assure that delayMicroseconds will perform precisely for smaller delay-times.

To ensure more accurate delays, this functions disables interrupts during its operation, meaning that some things (like receiving serial data, or incrementing the value returned by millis()) will not happen during the delay. Thus, you should only use this function for short delays, and use delay() for longer ones.