Why do local network hostnames resolve only in certain cases?
If you're serving .local via unicast DNS (instead of multicast DNS, as specified in this draft internet standard), include an SOA record for .local; as of v10.6, OS X detects this and switches .local resolution to unicast DNS.  Earlier versions of OS X have other methods of forcing unicast resolution - see Apple's KB article #HT3473 for details.