SSIS 2008 Package Configurations being ignored
You must take into account that when running by BIDS the package will take first the variable value from the config file, and only if the config file doesn't exist, it will throw a warning and the value will be taken from the package.

Now, the situation in command line is a bit different. You can have the following situations:


run the package in cmd line without any config file chosen:

dtExec /file "e:\Work\TestPackageConfiguration\TestPackageConfiguration\TestPackage.dtsx"



if the original config file (let's name it Prod) doesn't exist in the same path defined in the metadata of the package, values from inside the package are used and you'll just receive a warning that
config file is missing;
if the original config file exists and is valid, then values from the config file will be used (inner values will be bypassed);

run the package in cmd line without any config file chosen, but with variable set in the call:

dtExec /file "e:\Work\TestPackageConfiguration\TestPackageConfiguration\TestPackage.dtsx" /SET \Package.Variables[checkMe];"outside the package in cmd line"



if the original config file doesn't exist, then the value is taken from the /SET package call;
if the original config file does exist, then the value is taken from the config file and even the /SET is ignored (this is used only in the case above);

run the package in cmd line with a new config file (let's say DEV instead Prod):

dtExec /file "e:\Work\TestPackageConfiguration\TestPackageConfiguration\TestPackage.dtsx" /configFile "c:\ETL Config\TestPackage_config_Dev.dtsConfig"



if the new config (Dev) file exists, and old (Prod) doesn't, then values from it are used;
if both the Dev and Prod config file exist, then only values from Prod is used (DEV is bypassed even if specified in command line call);

run the package in cmd line with a new config file and a SET statement in the call:

dtExec /file "e:\Work\TestPackageConfiguration\TestPackageConfiguration\TestPackage.dtsx" /configFile "c:\ETL Config\TestPackage_config_Dev.dtsConfig" /SET \Package.Variables[checkMe];"outside the package in cmd line - DEV config"



if both config files exist, Prod will be used, all others ignored, even the SET;
if no config file exists, SET value will be used;



So, in short, if you want to use a new config file you'll have to rename/move the old one and call the package with /configFile.
If that's not enough and want to override even new config file, then use the /SET variable.
Or you can bypass any config file and just use /SET statements in the batch call.

Hopefully that will shed some light in your possibilities.