Setting Different Fees For Sign Up and Renewal In Civicrm
We have a similar situation and use a separate contribution page for renewals.

The menu link for renewals takes them to an intermediate Drupal page that is only visible if they are logged in, and only members (or ex-members) have a login. On that intermediate page is the link to the renewing CiviCRM contribution form.

This isn't perfect but works for our case where new memberships include a book, renewing memberships don't and the difference in the fee is only $5.  If a lapsed member renews rather than rejoins we aren't fussed, we just don't send them the book.