Are 2 Django URLs pointing at 1 view unorthodox?
Why not separate the view functions?

# talk to lower_down
url(r'^pm/(?P&lt;userprofile_pk&gt;\d+)/$', 'private_message_down'),

# talk to higher_up
url(r'^pm/$', 'private_message_up'),


The view functions:

def private_message(src, dest):
    # Are they allowed to talk?
    if src.is_assoc_with(dest):
        return HttpResponseRedirect('/')

    feed_vars = {
        'dest_pk': dest.pk,
        'src_pk' : src.pk,
    }

    return render(request, 'talk/private_message.html', feed_vars)

def private_message_down(request, userprofile_pk):
    src = request.user.userprofile

    # TODO: profile actually exists?
    dest = UserProfile.objects.get(pk=userprofile_pk) 

    return private_message(src, dest)

def private_message_up(request):
    src = request.user.userprofile
    dest = me.higher_up

    return private_message(src, dest)


I added a TODO for failure handling, I think you should wrap the .get lookup in a try-except UserProfile.DoesNotExist, for example:

from django.http import Http404


def private_message_down(request, userprofile_pk):
    src = request.user.userprofile

    try:
        dest = UserProfile.objects.get(pk=userprofile_pk) 
    catch UserProfile.DoesNotExist:
        raise Http404

    return private_message(src, dest)


Also, you probably want to decorate private_message_* with @login_required (from django.contrib.auth.decorators import login_required).