I do this a lot. In the .bst file, I create a bunch of macros, like
MACRO {jap} {"J.~Appl.\ Phys."}
MACRO {sep} {"September"}
I also have auxilliary bib files set up with definitions like statesfull.bib
@STRING{ut.us = "Utah"}
or statespostal.bib
@STRING{ut.us = "UT"}
Then, in my bib files, entries would appear as
@ARTICLE{segl94,
AUTHOR = "Segletes, S. B.",
TITLE = {Further Examinations on the Thermodynamic Stability of the
{M}ie-{G}r\"uneisen Equation of State},
JOURNAL = jap,
YEAR = "1994",
VOLUME = "76",
NUMBER = "8",
PAGES = "4560--4566",
MONTH = "15~" # oct }
or
@TECHREPORT{grin10a,
AUTHOR = "Grinfeld, M. A. and Segletes, S. B.",
TITLE = "Towards Mechanochemistry of Fracture and Cohesion:
General Introduction and the Simplest Model of Velcro",
NUMBER = "ARL-TR-5309",
INSTITUTION = "U.S. Army Research Laboratory",
ADDRESS = "Aberdeen Proving Ground, " # md.us,
YEAR = "2010",
MONTH = sep }
By calling on bibliography with the right file options, I can make the bibliography either print out full journal names, or abbreviated names, without changing the use of the shorthand like 'jap' in my bib file. Likewise for state: either full names or abbreviated postal names