Тысячи сайтов на одной БД
Не надо на одной базе, сделайте заранее пакеты настроенной CMS для партнера и при создании сайта напишите bash (gem, perl, python, ruby, awk что душе угодно скрипт), который будет создавать:
1. свою базу, заливать дамп по умолчанию
2. виртуальный хост
3. папку и распаковывать подготовленный пакет системы и сохранять настройки
Ну я без тщательного исследования всяких CMS не скажу что лучше (с нуля или нет), но если с нуля, то тут все просто. Например есть посты. Все они на основном сайте. Какие-то из них должны быть на каких-то сайтах партнеров. Итого:

posts(id, content)
partners(id, url)
partners_posts(partner_id, post_id)

все. Наполнение для нового партнера — просто галочки выставить.