Are there apps that allow two iPhones to communicate directly without the need of any network?
HeyTell works well over 3G. I've used it for years. It's great!

Answer to comment:

Walkie Talkie for iPhone might do the trick. It uses Wi-Fi or Bluetooth. The Bluetooth range would only be around 30 feet though. You might be able to use this one over an ad hoc network, but you'd need a PC or Mac to set that up and even then, I don't know if this app uses its own servers to transmit the messages or if they are transmitted directly.

Bluetooth Walkie Talkie also might do the trick but again, its range is limited. 

To answer your question in the comment below there is no way to have walkie talkie like functionality over 3G without having 3G signal from a carrier.