There are no race conditions per se in Ethereum blockchain. All transactions are executed in some order and there is no parallelism in that fashion.
I'm not quite sure what your fear is. You want to send Ether to an address but you don't know whether it's a contract address or an EOA (Externally Owned Address, so a wallet)? Such functionality is most likely not available in typical wallet clients. I'm not sure if even nodes have such functionality. But of course you can find it out using different online services or in a Solidity contract (https://stackoverflow.com/a/40939341/2318492).
You should of course always know already in advance why you send Ethers to a specific address. And typically you also know already whether it's a contract or an EOA. If it's a contract and you're worried about gas limits, you should contact the contract's owners to make sure. Automatic gas estimations are always just estimations and they might fail completely.