Well that is rather easy. There is only one hook into the built-in crew transfer system, and it occurs after the member has already been transferred, and the transfer message queued for display, but the hook code runs in the very same frame, and it is very straightforward to undo the transfer, and fairly easy to suppress the existing message. So I check if the tranfer is within the same ConnectedLivingSpace, (or if it is a transfer to/from EVA) and if not, then it is reverted, an error message displayed, and the success message removed. There is one rather minor downside, which is that the failed transfer may change which seat that Kerbal was in, but it is totally not worth adding code that runs every frame to avoid that. Somebody who really cares about the specific seats should be using the Ship Manifest mod anyway. I've posted the code to the following gist: https://gist.github.com/KevinCathcart/92d7d7d80bac480df7d6 It works just fine, and will likely continue to work until the next KSP release (or possibly longer), but I don't really want to maintain it, so somebody please adopt it.