I believe that there ought to be a privacy-consciousness setting in the client; if you switch it on, it rejects dust payments by immediately spending them in a tx with no outputs (ie, gifting them to the miner who gets the block).
There is a tool to do basically this, but even better: it ships them off to a server where they are coinjoined up in a single transaction, thus confusing simplistic taint analysis.
https://github.com/petertodd/dust-b-gone/Everyone with dust in their wallet should use it— even if you don't care about your own privacy, giving up your dust inputs is good for the network and improves other people's privacy.
Because the coin selection algorithm is predictable,
The algorithm is randomized and I'm not aware of any way to easily control when a coin gets used except by making it exactly the right unusual value.
E.g. you send the person 1.123456 and then get them to pay 1.123456 and it is very likely that they'll use the intended coin, though in that case there wouldn't be any other inputs.
Not that privacy attacks with dust aren't a concern, but it's isn't quite as trivial as being able to control when the coins are used directly.