If I was sending data to a smart contract, do I need to encrypt it before transmitting and decrypt it in the smart contract? Or is this done automatically?
Communication at the p2p level are encrypted between the nodes.
Between your wallet and the node it depends on the wallet. Some wallets use https so the transactions are encrypted by that protocol.
If data get compromised, signature verification fails.
when Ethereum nodes receive transactions, they verify transactions using their signatures.
signature = hashing_algorithm(transaction informations)
If the signature does not match the transaction values, the transaction will become an invalid transaction, removed and not be saved in the transaction pool.