Я проверял ваш код на IE7 / 8
var myInput = document.getElementById('myInput');
myInput.setAttribute('custom-attr', 'custom-value');
alert(myInput.getAttribute('custom-attr'));
и работает нормально. Вам не подходит этот простой контрольный пример или вы действительно делаете что-то другое?
Вы можете использовать скобочные обозначения
var myInput = document.getElementById('myInput');
myInput['custom-attr'] = 'custom-value';
alert(myInput['custom-attr']);
Если у вас не было -
в названии, вы можете использовать точечную запись
var myInput = document.getElementById('myInput');
myInput.customAttr = 'custom-value';
alert(myInput.customAttr);