I was having the same problem, but think I found the solution here.
In short, you (and ideally Jeff in an upgrade) need to replace line 8 of usp.php (in wp-content/plugins/user-submitted-posts/resources) with:
require('../../../../wp-load.php');
It appears that including wp-blog-header.php, since the WordPress 3.0 upgrade (maybe?), results in a 404 even though the content is correct, because it’s not returning a WP post.
That is, even when you’re loading it yourself in a browser window, it’s still returning 404, it’s just returning the script as the “404 page” or whatever you want to call it.