Tom,
Off the top of my head, you can probably create a custom solution to do what you want. Here are some thoughts:
Play around with firstCommand in the link sent to the user. You could probably use a process in firstCommand that changes a special flag/attribute (for example LinkLogin=Yes) and you could then use a check somewhere for example in VP initialization or after startup options to check if the flag is Yes: display perspective and also reset the LinkLogin to No, or if it´s No: do not allow the login / logout and redirect user to company site.
I am not sure if the firstCommand is executed BEFORE or AFTER the VP has been shown, if it´s AFTER, you can use another empty VP as the VP the user logs into and then the firstCommand as explained above is executed.