@Lee Adams
I will explain this from how Bitcoin Core will do it.
By default, if you want to send to a p2pkh address (1xxxx) it will create the output as a p2pkh output, same as before. Likewise, if you want to send to a p2sh address (3xxxx) it will create the output as a p2sh output, same as before. To take advantage of segwit, the wallet will create p2sh address which have the witness outputs nested in them. The redeemscript of those p2sh address will be the witness output. Because it is a p2sh address, any client will be able to send to it, regardless of upgrade status because it is still sent to using a p2sh output. This allows for upgraded clients to use the benefits of segwit when spending from those outputs while maintaining compatibility with non-upgraded clients.
The segwit outputs will not be used at all. As of now, there is no way to use Bitcoin Core to generate a transaction with any of the segwit output types. However, it of course does support validating them and spending from them if anyone were to create transactions with segwit outputs by hand or with other software. It will still recognize if a segwit output is meant for it.