I was having the same issues too. I followed the steps dotted all over the internet and was getting stuck in exactly the same place. No matter how hard I tried, I just kept getting the 'invalid filename' issue.
Eventually I figured it out - the way that Netgear/Virgin have blocked firmware updating is to break the filename checking page so it doesn't accept any files. What we need to do is bypass the filename checking code so that the firmware upgrade system can then handle the file, and we're going to do this by manipulating the web page using a tool called Firebug.
Here is the solution:
1) If you haven't already got it, install Mozilla Firefox 3 (there is good reason for this - I'm not just shamelessly plugging it! :P).
2) Install the 'Firebug' extension for Firefox from https://addons.mozilla.org/en-US/firefox/addon/1843
and restart your browser when requested.
3) Navigate to your router's admin page, and fill in your login details (if you don't know them, it's likely to be the one written on the bottom of your router).
4) Navigate to the router upgrade page (the one where you select the firmware to upload' and select the location of the firmware file, like you would normally. Now, instead of clicking the 'Upload' button, press F12. This should bring up Firebug in the bottom quarter of your screen.
5) Now, click the
button at the top of the Firebug panel and then click on the 'Upload' button. This will bring up the code for the upload button, where it does the filename checking. It'll look like this:
6) It looks like Netgear have actually stripped out the real checking code so it can't be used, so we'll need to fool the page into thinking everything's fine and dandy with the filename so it can update the firmware. Click where it says "return checkData();" and replace it with "return true;".
7) Finally, click the upload button. The router should now accept the file and start updating.
And hey presto! You have a non-nargled wireless router with the latest firmware!