Thing with jQuery and I appreciate your pain is that ANY one with ANY webpart or masterpage or doc library can be adding it in.
Your have to hope that your code will work with multiple jQuery libraries and you should test it with all of them, even the great SPServices had to make a slight change to be compatible thru the versions.
Now that said how do you load jQuery in your webpart.
Well the manner in which I did it was to copy the way Jaap Vossers did it in his Dev Dash Visualiser.
This uses a ScriptLink custom action to load a custom JS Script and the LABJS library. That script uses LABJS to determine if jQuery is already loaded and if so it will dynamically load it if it is needed.
So the next thing is what if LABJS is loaded, well if your worried about this on the LABJS site is some code that will dyno load that too.
So where to host the jQuery and LABJS libraries, any where you like CDN's are good, so is _layouts, but also a folder in a site collection (not necessarily a doc lib), just remember to namespace it in _layouts to your project else there may be collisions, if you copy and rename a lib to _layouts/jquery.min.js and yours is v1.3 and other have done the same with 1.5 eeek! So namespace it or specifically version it.
Until MS or whoever can come up with a centralised way to manage jQuery library inclusion in the project, Dyno loading the lib in your custom part is the way to go, unless of course its your SharePoint installation and you have control over all of it.
Jan Teilens blog also has some suggestions on how to do this it is worth examining them all.