OS X resets Perferred Startup OS / Partition

Solution 1:

Install rEFIt. It's a bootloader that installs on your OS X partition. In the file /efi/refit/refit.conf, there is a section that reads:

# List legacy options first. When enabled, legacy BIOS based boot options
# (e.g. Windows, Linux via LILO or GRUB) will be listed first. This is
# intended as a quick fix to change the default boot choice until full
# configurability arrives.
#
#legacyfirst

# Set the default menu selection.  The available arguments match the
# keyboard accelerators available within rEFIt.  You may select the default
# loader using a one-character abbreviation for the OS name ("M" = Mac OS X,
# "L" = Linux, "W" = Windows).  You may also specify a digit between 1 and
# 9, in which case the Nth loader in the menu will be the default.  You can
# also select a rEFIt tool entry ("S" = EFI Shell, "P" = Partitioning Tool,
# "U" = shutdown).  This is intended as a quick fix to change the default
# boot choice until full configurability arrives.
#
#default_selection L

Uncommenting either legacyfirst or setting default_selection W should work. I have not tried this although I use rEFIt without any problems. In the same file, you can change the timeout 20 line to something shorter as well.

rEFIt

Solution 2:

How are you booting into OS X? If you use the Boot Camp control panel to select OS X, it makes that a permanent setting in the firmware (i.e. it'll boot OS X until you tell it different). If you just want to boot OS X once, it's easier to hold the Option key at boot -- this selects the firmware-based startup manager, which'll let you select which volume to boot from without changing the permanent setting.