Nagios 1.x works just the way you described. If the service check fails, it checks the host. If the host fails it checks the parent, if the parent is ok, it notifies you about the HOST ONLY, depending on how you have your notifications setup.
Perhaps you have included too many status' for failures.
In other words, in services.cfg i have this:
The reason is, because I don't care about the other's. If a service check is UNKNOWN, i don't care because it's usually due to some other problem.
In the hosts.cfg file I have:
because I don't care about the u (unreachable) state. It's unreachable due to a d state on the parent.
So the problem you are having is due to the way you have it setup. If you don't want the emails you are getting, then change the reason's that notifications are sent out.