Hi Hello,
I am trying to pointing you the direction and helping you to answer.
1. How can you set up an automatic import from a company's website so that an enquiry logged on the website is automatically logged as a lead
--> Actually, I have experience with this requirement before. Okay, what I did in the very first time is, because my client is using their old website, so, I have to tell the developer to embed a script in the contact us form (enquiry in your case) to call my web service (can using JSON web service as well or if the client is using ASP.NET, can apply the server code) then my web service after being called with create a lead from the parameter of the enquiry form.
Or, if you dont need the web service, just put the Create Lead action in the submit button of the enquiry form.
Otherwise, this is my another experience, I recommend the user (which is in this case, the user really wanted to use Customer Portal replacing the website) a customer portal with ADXStudioPortal as the backbone.
It allows you to publish any form easily and then the form after submit is directly linked and connected to the CRM database and then the input was directly stored into CRM database without any difficulty. You can see this link :)
http://community.adxstudio.com/products/adxstudio-portals/users-guide/web-forms/create-a-lead-generating-contact-us-form/
And you can go to the website and sign up for trial :)
2. How to set up imports from a spreadsheet that contains multiple entities
--> I do not know whether you have read this link or not, but, yes, again I have this experience before when I was handling telco project, and I found that these links were so helpful.
http://blogs.msdn.com/b/emeadcrmsupport/archive/2011/09/12/multi-entity-data-file-import-mapping.aspx
http://blogs.msdn.com/b/crm/archive/2010/11/04/importing-two-or-more-entities-from-a-single-file.aspx or https://community.dynamics.com/crm/b/crmteamblog/archive/2010/11/04/importing-two-or-more-entities-from-a-single-file.aspx
3. How to set up scheduled imports from one system into CRM that runs every morning at 4 AM but doesn't create new records if they already exist?
--> Last time what I did is I did not use the import function, but, instead, I was using the Windows Task Scheduler (easy to use, easy to schedule as well), which is running some worker process that inside of this you put some custom code, if exists then update or do nothing, else then create new record.
And what another way I did is I was using the SSIS + Data Connector to CRM Server, SSIS is also easy to deploy (under SQL Server Deployment), but more difficult to create if you are more familiar with .NET.
We have same experiences for the projects.
Hopefully my sharing knowledge is helpful for you!
Thank you.