The ERC721 standard defines the token. Similarily ERC20 standard defines a different type of token. Neither of them define how the token is sold or under what circumstances it is transferred around - the standard simply enables transfers when needed.
So what typically happens is that a separate selling contract (or in the case of ERC20 ICOs - a crowdsale contract) is created. In the case of ERC20 the process is quite straightforward: initially the crowdsale contract holds all the tokens which are for sale and when someone sends Ethers to the contract is calls the token contract to transfer the appropriate amount of tokens to the buyer.
I'm not so familiar with the ways how ERC721 tokens are being sold but I'd imagine it's more one-off sales. So there's a selling contract where seller sends the token and says what price it wants for it. Then a buyer sends the requested amount of Ether to the contract and the contract calls the ERC721 token contract to transfer the token and transfers the Ethers to the buyer.
As for your specific case I'd suggest that you create a selling contract which simply doesn't allow reselling of the token for a higher price. That is, if the seller uses that contract - typically nothing prevents him from using any means he wants in selling the token. You could either write the token so that it allows transfers only from a certain address (the seller contract) and/or you can instruct your users to only sell their tokens through this one contract.