CiviCRM can handle all of your complex event options - the best way to start is to understand what information you will need to manage your event (participant counts, meal choices, etc.), and then configure your information in such a way that will allow you to report easily and effectively as participants begin to register.
Did you know you can use a CiviCRM profile to customize your mailing list signups, even if you use MailChimp? Of course, you can offer a default list of groups to a given subscriber, but when you use a profile, you can also collect important data about that subscriber that can help target your constituents more effectively.
Let's say you have an event on which you have allowed Pending (Pay Later) registrations (i.e. a check is to be sent by a given date to the office), and like many of us do, the vast majority of participants decide to send in their checks at the very last minute - now you have a whole bunch of payments to record against a whole bunch of Pending (Pay Later) contributions - why record payments individually when you can record payments against multiple Pending (Pay Later) contributions simultaneously?!
When importing contacts into CiviCRM, you have the option of adding those contacts to a group and/or assigning them a tag. This will only apply to NEW contacts being imported, not to duplicate contacts that may be found and skipped or updated during import. A fool-proof method to identifying imported contacts (e.g. in order to be able to easily search and/or delete them if a mistake has been made) is to include a custom field for this purpose. I like to call it “Import Identifier”.
No matter how many controls we put into place to prevent duplicate contact creation, inevitably we always end up with a few, especially when website traffic volume has been high. As such, best practices for managing contacts include a periodic review and merging of duplicate contacts (especially after a big event or fundraising campaign). CiviCRM is equipped with several features that help prevent duplicate contact creation.
Does your data contain special characters such as accented letters or names with apostrophes? Have you exported that data in CSV format and found that those special characters have been made even more special (funky, actually)?
If so, there is a setting called "Language Encoding" located in CiviCRM under Administer > Localization > Languages, Currency, Locations that can be configured as "UTF-8" such that any special characters being exported to CSV will be preserved when you open the file.