Regardless of how the requestor sends the request (right-click on roster to join, or .join command), it's how your frontend is set to show the notice. I think the default is pop-up window, but you can change that to show in the text buffer instead. If the window pops up on your screen, you have to click a button as I doubt typing the .accept command will close the window.
I believe that if you move the window somewhere on your screen before clicking any of the buttons, the position will be remembered for subsequent requests.