First of all, I am pretty sure that the qt allows to import an externally generated private key (with the "importprivkey" RPC), so I don't quite understand why you say that sending from such would not be possible.
Besides of that, my
gocoin's wallet does such things.
All you need to do is to place your (base58 encoded) private key in a text file called others.sec (in the same folder where you run the wallet app from).
Then make sure that there is a recent "balance" folder (that contains unspent transactions belonging to your key) - and then you can spend coins from that address by calling:
wallet -send 1btcAddressBlahBlaBla=amount