When a transaction is added to the tangle it must reference two other transactions (tips) already in the tangle. Can someone tell me what happens if two transactions, each posted by different people, reference the same tips as each other?
There is no problem with that and it can't be completely avoided simply because of network latency. One tip can be selected in good faith by 2 different nodes at the same time.
Note that lazy nodes may decide to select many time the same transaction to attach new ones. This is unfair behavior and decrease the overall tps. You can see this kind of structure in tangle visualizers.