I guess you want to write a custom interprogram-paste-function
which checks to see if the value is a valid filename and, if so, establishes it relative to default-directory
in the current buffer.
(Sounds like freakish behaviour to me, but maybe that's just me.)