Display different profile (in Drupal) based on CiviGroup (or tag)
Mostly when working with complex form requirements in Drupal, folk are opting to use webform_civicrm as the flexibility it provides opens up many new options.

For example in your case you could use Webform Conditionals to determine which fields show based on the choice of Membership Type (or type an existing user has if they are logged in or using a checksum). HTH