I hate that! That's honestly my BIGGEST pet peeve.
There are some things I to do try and prevent it -- I fill all the Flea Market spaces in ReTail with shells and price them at like 50k so no one can buy those, and also so no one can sell the items in their homes. Then I never let them buy things off me when they ping (!) me, unless it fits their house. I also have furniture items buried right in front of their houses so that if they ever ask me to find them furniture, I already have the perfect thing picked out.
One thing you can do is send them two letters with the exact same piece of furniture in both letters. They will literally have to put the furniture up in their house, it has worked for me 100% of the time. The only problem is that if you choose something they like, they might put BOTH up. Skye now has TWO alpine beds in her house. ((I like to think that she uses them for sleepovers)).
You can tell what items villagers like on this list right here:
http://www.thonky.com/animal-crossing-new-leaf/villager-birthdays ; those are items that, more than likely, you only need to send one of for the villager to keep.
... if it wasn't clear, I've done, like. A fair amount of research on this because as I said, it is
literally by biggest pet peeve in the entire game.