How to do big modifications to live site?

I STRONGLY suggest you take your time and set up a development server with versioning like GIT. It is awesome.
But since i am in exactly the same position as you and have not yet done it myself, I will share how I do things.
If I have changes to implement that will possibly bring down the site or do some whacky stuff that is not immediately apparent, I:

  1. Choose the time of day where the traffic is at it’s lowest. Yes, usually it is between 2 and 5 in the morning. I am an owl.
  2. Make a specific plan of what I am going to do, where, why and how, and what I need to test to make sure it works as intended. This is to ensure that I don’t get carried away fixing something else instead of what I wanted to fix and that stuff does not slip through the cracks. I also prepare my environment – make sure that all browsers / devices I am going to check the changes on are charged, installed and otherwise ready.
  3. Put an alert in page header that says ‘we are currently doing stuff here, excuse inconvenience’.
  4. If the changes are huuuge, site is expected to not work for more than an hour at all and I can afford it, I enable maintenance mode with plugin. http://wordpress.org/plugins/wp-maintenance-mode/.
  5. All in all, communication is essential. Talk to your client, talk to your users, get everyone informed about what you are doing, why, how long it will take etc. Most people are able to take a bit of inconvenience if they expect it and understand why it happens.

Hope this helps.