I would like to generate an Activities report (eg upcoming scheduled activities) which includes case data (eg case ID, case Subject, case Role contacts, case custom fields) of the case to which each listed activity relates. Is there an 'approved' way of doing this? Thanks.
Are you using drupal? You might get what you want with a drupal view.
The "extended report" extension (https://github.com/eileenmcnaughton/nz.co.fuzion.extendedreport) has a case pivot report where you can filter on activity date for example. It might get you close.
A sideways thought: You mention upcoming scheduled so I assume there is a further end use for this report, which might be achievable other ways. For example scheduled reminders or civirules might be able to give advance notice when certain conditions are met.