So how different is 'different'?

So having spent a month or 2 working on CiviCRM recently I'm coming to realise how different civi is to drupal. While some of the principals draw parallels with what drupal does, I was really thrown with the complexity of civicrm, or so I thought. I suppose in reality the complexity is about the same, its the execution that differs.

While drupal has a large collection of contributed modules though, civicrm has less but it has a reasonably focussed goal and an active dev team. I also think that some of the principals of civicrm are creeping into drupal, for example the database abstraction layer.

Hopefully the client will be happy with my tweaks and things go without a hitch.