A node can't interact as a full network peer until it's able to validate transactions, which requires the node to be fully synced. So the node should ignore transactions which would otherwise enter the mempool until it's able to validate them successfully. In ProcessMessage in the handling of the tx command, zcashd can simply ignore messages until the current chain tip is >= the highest-known network upgrade height.