An address is not an account - it does NOT have a balance.
Er, actually it does. It is an account. You can receive payments to it and send payments from it if you have the private key.
A transaction is created so that the entire 10BTC is "spent" by having 2.5BTC go to the person you are paying, and the remaining 7.5BTC is paid to a new address that your client quietly generates.
You can just make two outputs, one being the person you are paying for 2.5BTC and the other being the paper wallet address for the other 7.5BTC.