I think you missed my point. I said open drain main for easy bidirectional signaling. I did not say it was required. It is easy because you do not have to remember to explicitly turn the outputs on and off.
For a multiple chip bus system. Open drain is preferred because you can easily detect bus contention. With open drain, if you release the bus to write a "1" and then sample the pin and find it to be "0", you know another chip is already on the bus. If you try to do this with regular drivers you have some period of time where there are two drivers on the same line. Also with regular drivers, you run the risk of a strong driver overriding a weaker one and missing the collision detection.
Finally, I totally forgot about the other reason for open drain. It allows for easy translation between logic families. Assume that I want to send serial data from a 5V 8051 to a 2.5V chip. If the 2.5V chip is not 5V tolerant on its IO pins, I will damage the part. However, if I use the open drain output and use a pullup resistor to 2.5V instead of 5V, then I can do the interface without a problem.