What are good ways to upload bulk .csv data into a webapp using Django/Python?
Look at csv module from stdlib.  It contains presets for popualr CSV dialects like one produced by Excel.
Reader class support field mapping and if file contains column header it coes not depend on column order.  For more complex logic, like looking up several alternative names for a field, you'll need to write your own implementation.
I have a very basic CSV file upload module working to bulk upload my user's data into my site.  I process the CSV file in the backend with a python script that runs on crontab and then email the user the results of the bulk upload.  This process works ok operationally, but my issue is with the format of the csv file.  
Are there good tools or even basic rules on how to accept different formats of the csv file?  The user may have a different order of data columns, slightly different names for the column headers (I want the email column to be entitled "Email", but it may say "Primary Email", "Email Address"), or missing additional data columns.  Any good examples of CSV upload functionality that is very permissive and user friendly?
Also, how do I tell the user to export as CSV data?  I'm importing address book information, so this data often comes from Outlook, Thunderbird, other software packages that have address books.  Are there other popular data formats that I should accept?