The problem is the Nudge plugin is useful for mostly small movements. Movements beyond the extents of the dataset are cut off, as you have seen. Try using @Align_Centers script to put the centers of each dataset over each other first, and then you won't run into this problem.
Another way to handle this is to go ahead and use the Nudge plugin and write out the dataset or use the print command to create a 3drotate command and use that. That requires your being able to see enough of the dataset to see if they overlap well. Then use 3dWarp to apply the transformation and resample the output to the base dataset's grid. Here's an example with two anatomical datasets, anat+orig and anat2+orig, and I'd like to nudge anat2 to anat. Each has a different grid and different spatial extents.
# from the "Print" button in the Nudge plugin
3drotate -quintic -clipit -rotate 0.00I 0.00R 0.00A -ashift 0.00S 0.00L -37.80P -prefix nudgetest anat2+orig
cat_matvec nudgetest+orig::ROTATE_MATVEC_000000 > nudgerotmat.1D
3dWarp -gridset anat+orig -matvec_in2out nudgerotmat.1D -prefix anat_warped anat2+orig
Nudging is fairly tricky if you are trying to get a good alignment though. You may want to align the data using align_epi_anat.py using the various master options to avoid cutting off data.