The problem : Pubmed/Medline does not provide a Bibtex output and I could not find any software to transform a Pubmed record into a Bibtex one.
The best solution I found is to write a XSL stylesheet to transform a XML Pubmed record into a Bibtex entry.

Here is the stylesheet :

<?xml version="1.0"?> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> 
<xsl:output method="text" encoding="iso-8859-1"/>


<xsl:template match="/">
<xsl:apply-templates select="PubMedArticle/MedlineCitation/Article"/>
</xsl:template> 


<xsl:template match="PubMedArticle/MedlineCitation/Article"> 
@Article{<xsl:value-of select="AuthorList/Author/LastName"/><xsl:value-of select="Journal/JournalIssue/PubDate/Year"/>,
  author = 	 {<xsl:apply-templates select="AuthorList/Author"/>},
  title = 	 {<xsl:value-of select="ArticleTitle"/>},
  journal = 	 {<xsl:value-of select="../MedlineJournalInfo/MedlineTA"/>},
  year = 	 {<xsl:value-of select="Journal/JournalIssue/PubDate/Year"/>},
  OPTkey = 	 {},
  volume = 	 {<xsl:value-of select="Journal/JournalIssue/Volume"/>},
  number = 	 {<xsl:value-of select="Journal/JournalIssue/Issue"/>},
  pages = 	 {<xsl:value-of select="Pagination/MedlinePgn"/>},
  OPTmonth = 	 {},
  OPTnote = 	 {},
  OPTannote = 	 {}
}
</xsl:template> 

<xsl:template match="AuthorList/Author"><xsl:if test="position()!=1"> and </xsl:if> <xsl:apply-templates select="Initials"/>. <xsl:apply-templates select="LastName"/></xsl:template> 


</xsl:stylesheet> 




To use this stylesheet, you have several solutions. You can go to the Pubmed site, search for your publication, then save the corresponding XML record into a text file on your machine, say text.xml. Then you need apply the above stylesheet (named pubmed.xsl for example) to this XML file to obtain a Bibtex output.

To do that, you need a XSLT engine. There are several available engines, the best one I have found is xsltproc. It is part of the The XSLT C library for Gnome and is obviously open source software. If you don't like xsltproc, you can use Sablotron, or even the Xalan engine (written in Java).

Then you just have to type :
xsltproc pubmed.xsl text.xml
This is the kind of output you get :
@Article{Sitnikova1998,
  author =       {T. Sitnikova and M. Nei},
  title =        {Evolution of immunoglobulin kappa chain variable region genes in vertebrates.},
  journal =      {Mol Biol Evol},
  year =         {1998},
  OPTkey =       {},
  volume =       {15},
  number =       {1},
  pages =        {50-60},
  OPTmonth =     {},
  OPTnote =      {},
  OPTannote =    {}
}
Now suppose that you know the MEDLINEID of your article and you want to avoid opening your navigator and manually saving the XML record. BioPerl has a nice module called Bio::Biblio to save you a lot of time. just type :
perl -MBio::Biblio -e 'print new Bio::Biblio->get_by_id ("98152304")' > tmp.xml && xsltproc pubmed.xsl tmp.xml
And you will get the same output.

Note : the id must be a MEDLINE id, and unfortunately not (as far as I know) a PUBMED id. Therefore, the user must have a look at the XML record to know this id. If someone knows a workaround, please send me an email.