What is the best way to prepare for two chains? If I transfer BTC to a core desktop wallet before 8/1, How do I make sure I can spend them on both chains? Will there be a different wallet program compatible with the core wallet.dat?
All you have to do before august 1st is ensure that you put the coins somewhere you can have full control of them (as in own the private keys that they are based on).
If Core is too big, I suggest something like Electrum.
There are tutorials from electrum as to how to deal with the forked currency as well.
If you want to guarentee it, you could use a pre-segiwt compatible wallet and a regular wallet and use these to get two different currencies from it.
Although, a better option would just be to change the nodes that each wallet connects to and keep them changed to access the two different coins after the chain split (there should be lists somewhere of what currency each node will support after the split and presumably there will be one or two nodes that are trusted and have both cores on the same IP just coming out of different ports).
The current bitcoin core is compatible with both as the "old" currency is the one that is being used now and the "new" currency must be compatible with the core for this to be successful.