I don’t think it is common enough task for there to be generic recommendations in WordPress area.
Taking the more specific part of your question — manipulating template is certainly possible and quite common.
- Any template (being loaded in native fashion) will have to go through
template_include
filter - Results of single template specifically will go through
single_template
filter before that.
At either point you could check for URL parameter and override the choice made.