I have been working on a problem that has me stumped. Let me give you the structure so you can understand what I am trying to do. I am talking about a-thons, so once an a-thon is created an individual must “join” that a-thon in order to participate. I do that with a Node Reference link on the a-thon page. Clicking on the “Join this a-thon” link creates a “join” record which is linked to a-thon and to the participant as the author. No problem here, that is working fine.
As part of the Join, the participant pledges to raise some amount of money, say $300. Again, no problem that is working fine. Of course the participant wants people to sponsor him. Again, no problem as I can do that with another node reference linking the Join node to a Pledge form. The sponsor clicks on the Sponsor Me link and a Pledge page is created where the sponsor indicates how much they wish to pledge. All of this works fine.
Now comes the problem. I also need to have a “Report My Progress” node reference (or some other approach) on the Join page so that the participant can report the completion of the a-thon. It is easy to put the link there with another Node Reference to a Report form, but the problem becomes controlling access to the link so that only the participant (the Join Author) can report his progress.
I can control access (limit it to the Author) to all the Node Reference links on a node through the use of Panels, but then access to the Sponsor Me link is also limited. I need to have a way to split the two links apart so they are dealt with separately, “Sponsor Me” available to everyone, “Report My Progress” only accessible to the Author.
My preferred approach would be to somehow move the Sponsor Me link to a button (or link) that is part of the join (separate from the Node reference links at the bottom of the node). If I could do that, then I could use panels to control access to the Report My Progress node reference link. Unfortunately, I have no idea if or now that could be done.
Does anyone have any ideas how I can do this? This is a D7 installation, I can show the site to you if that helps.

Comments
Meant to reply sooner
It's possible that the Relation module will help you here. I don't know much about it other than what I've read on the module's home page, but I might be learning a bit about it at BADCamp: http://2011.badcamp.net/program/sessions/relation and http://2011.badcamp.net/program/sessions/relation-entity-tree
In the meantime...
If you're interested in the meantime, there's a presentation from ~1 month ago over at Drupalcon London. There's some thick accents to decipher, but overall a good show. For now I think visualizing relation data is limited to Views (not much of a limitation IMO). Rules integration is high on the list of priorities over there, but I don't think there are (m)any modules around for actually creating relations (the module itself provides this weird picker that uses sessions to preserve admin picks across many different page loads until the admin has all of the relation constituents gathered in the picker block, with a button dispatching the picks to the relation API for construction--useful for developers, but not others), so you'd probably have write a bit of code yourself.
Another Approach
I'm assuming that a participant has a user account. Why not a 'My Athons' tab on the user entity's page that pulls up a view of athons that the user has subscribed to? My approach would be to construct an user-authored 'Athon Progress' node upon subscription. On most pages I'd build a view of Athon Progress nodes with a relationship to node author and use it to filter out the nodes that weren't authored by the current user. Myself, I'd attach that pane to every page on the site. The sticky part is a clean workflow to construct the athon progress nodes, and hiding that workflow if the user has already subscribed. The Rules module almost covers the use case, but I haven't seen a trigger that would initialize the process. My impression is that one used to exist in D6. Anyone know if there exists a field type that exposes rule action trigger(s) (I'm thinking a subscribe button for non-subscribers and an unsubscribe button for subscribers)?
For the view, try:
Of course the list will look very list-like, but the percentage values can be converted to something nicer in the theme layer (in particular with a drop down box, you could generate a picture of the progress for each setting and hack it in there somehow).
Under this schematic, subscription is equivalent to creating a node of type Athon Progress with 0% complete, but facilitating its construction is still undetermined. Anyone else have some ideas?
Untested option
In the middle column, under $DISPLAY SETTINGS, you can set Access to Role and specify the authenticated user role. Then it should only show when the user is logged in.
Garbage collection problems
I just realized that my suggestion would leave orphaned Athon Progress nodes after an athon was deleted. The relation module mentioned earlier should handle this sort of use case someday (I imagine attaching each Athon Progress node to its athon with a relation decorated with some sort of ownership-policy field), but cron is well suited to the garbage collection.
Maybe the last piece?
Just happened across the Contextual Administration module. Sounds like it might do the trick, but I'd worry about security.
Last piece of the puzzle
I just noticed the Rules Link module. I haven't tried it myself, but it completes that rules workflow with a triggering mechanism that is attachable to any entity (including nodes, yeah?). I saw it in a broader rules presentation over at the Drupalcon London website, if you're interested in a nice introduction to rules. Unfortunately, the speakers assume vague familiarity from the audience, so you should probably toy with the module for a few minutes before watching.
If you're not entirely set on
If you're not entirely set on using node reference, you may want to consider organic groups. It has the framework for what you're trying to do, including permissions and special "group" (a-thon) content types.
Gaslamp Media - San Diego Drupal
What has been the outcome of
What has been the outcome of this thread so far.
I read about mrfelton's Case Study - Show your Concern in August 2012 but the profile/distribution hasn't made it back into a public git repository that I've found.