Freesurfer uses a tool called mritotal in the package called mni_autoreg [http://www.bic.mni.mcgill.ca/users/louis/MNI_AUTOREG_home/readme/].
It uses the MNI average_305 template volume to create the linear talairach affine transform. The transform file talairach.xfm is deposited in $subject/mri/transforms directory. The template volume average_305.mnc resides in /usr/pubsw/packages/mni/1.2/share/mni_autoreg directory in the MGH environment.
Because the mritotal method uses the correlation method, the resulting transform can be bad. In that case, you are advised to use a manual registration tool to create the transform. Note that you have to create the MNI compatible talairach.xfm to go along with further freesurfer processes.
There exist a few manual registration tools.
The MNI GUI tool called register [http://www.bic.mni.mcgill.ca/software/register/register.html] allows you to get the linear transform manually by specifying the corresponding points and produces the xfm compatible with the process. The catch is that you have to convert your volume into MINC format, using ["mri_convert"].
When you use ["tkregister"] or ["tkregister2"], you are advised to convert register.dat to the xfm, using ["regdat2xfm"].