How do you build against Vayne or Fiora?
Through damage for the former, and through bruiser for the latter.
Other than CC which works on every champion
Not really. CC is extremely useless on engage tanks since it doesn't setup your teammates to kill them well, and due to the nature of their abilities, you're only rarely interrupting them. On the other hand, CC a DPS like Vayne and she's suuuuuuuuuuper vulnerable to now everything, and due to the nature of her kit, she has no power at all if stun locked.
To build against true damage you build health.
Honestly most forms of true damage ought to be avoided through gameplay then itemization. Shut down Yi as a DPS, kite Garen, don't sit inside Cho's striking range, don't let yourself get comboed so easily by Vel'Koz.
But building health against this give nothing because you lose the same percentage of health.
Nothing is a pretty grand overstatement.
Both Vayne and Fiora deal over 70% of their damage as physical damage. To completely and totally ignore this is kinda dumb, and really undersell that champs like Fiora's hardest counters still regularly commit at least some defense against her.
Also if you are a tank and someone goes full armor penetration, how do you build against this?
Damage, or you just plainly don't.
If that someone is a DPS, they're designed to counter and kill you, not the other way around really.
You would say buy health, but if you do: health and a little armor (because armor won't help anyway) will be shredded away by them regardless. (Especially a high attack speed ADC)
Or, you could be a Bruiser and try to threaten them away. Scare an ADC enough and their focus fire becomes inconsistent.