Have you considered add a button to your contact form and programming it to open the template and pre-fill part of the information? I had that exact issue and the buttons have worked very well for me. Since you are using Outlook, you should check out OutlookCode.com and/or Sue Mosher's Book "Microsoft Outlook Programming". It has really helped me a lot. Here is the code I used for my button. (It is for an excel template, but it is the same idea).
Sub btnTransmitXL_Click()
Set xlApp = CreateObject("Excel.Application")
If xlApp Is Nothing Then
MsgBox "Couldn't start Excel."
Else
'Instead of open the template is added.
Set xlTemp = xlApp.Workbooks.Add("I:\Masters\Outlook - DO NOT MOVE OR MODIFY\KillianGroupTransmittalTemplate.xlt")
xlApp.Cells(4, 8).Value = CStr(Item.FullName)
xlApp.Cells(3, 2).Value = CStr(Item.CompanyName)
xlApp.Cells(4, 2).Value = CStr(Item.BusinessAddressStreet)
xlApp.Cells(5, 2).Value = CStr(Item.BusinessAddressCity) & ", " & CStr(Item.BusinessAddressState) & " " & CStr(Item.BusinessAddressPostalCode)
xlApp.Cells(6, 2).Value = CStr(Item.BusinessTelephoneNumber)
xlApp.Cells(6, 8).Value = CStr(Item.UserProperties("Project Name"))
xlApp.Cells(2, 9).Value = CStr(Item.UserProperties("Project No."))
xlApp.Cells(8, 8).Value = CStr(Item.UserProperties("License No."))
xlApp.Cells(16, 2).Value = CStr(Item.UserProperties("Plan Date"))
Set olApp = CreateObject("Outlook.Application")
Set olNamespace = olApp.GetNamespace("MAPI")
xlApp.Cells(34, 7).Value = olNamespace.CurrentUser
With xlApp
.Visible = True
.UserControl = True
End With
Set xlTemp = Nothing
Set xlApp = Nothing
End If
End Sub