Can someone sign a transaction, maybe for sending funds or for smart contract interaction, and have someone else broadcast it and pay the transaction fees?
Or is it that the signer of the transaction also has to pay for that transaction?
Theoretically anyone can broadcast signed transactions, yes.
The signed transaction contains the gas price (and gas limit) that the sender is willing to pay to for getting the transaction included in a block. Usually transactions with a gas price of 0 or below a certain threshold would get ignored by miners.
However, there are exceptions like Flashbots Auction, where bundles of transactions can be submitted to miners. If one of the transactions in the bundle yields enough reward for miners, they'd also include other transactions of that bundle, even if they have a gas price of 0.