NeatUpload does not impose the 2GB limit. Instead, Flash and most browsers are not capable of uploading files larger than 2GB. Also, most servers (e.g. IIS) are not capable of receiving files larger than 2GB. To workaround these limitations you need to use a different web server and something else on the client side (e.g. a Java applet or ActiveX control). To integrate the client side with NeatUpload, see Uploading from a Client Application.
Sorry, I'd assumed that Flash just refused to allow files larger than 2GB to be selected. However, after looking into this some more, it seems I was wrong. NeatUpload uses a modified version of SWFUpload under the covers and tells SWFUpload not to allow files larger than 2GB. If you select a file larger than 2GB, the SWFUpload code actually generates an error, but NeatUpload ignores that error. To get notified of the error without modifying NeatUpload, you'd need to add something like this after your <body> element:
That is admittedly awkward. The whole setInterval() thing is necessary to poll for the SWFUpload object, which is created asynchronously.
The 2GB limit that NeatUpload passes to SWFUpload is hardcoded in NeatUpload.js (search for file_size_limit), but you really don't want to increase that. I just tried and although I could select larger files, uploading them caused silent failure presumably due to the Flash and server limitations I mention in my first post.